Linux에서 셸 스크립트는 특정 시스템 관리 작업을 수행하거나 자동화하고 간단한 명령줄 도구를 만드는 등 다양한 방법으로 우리를 돕습니다.
이 가이드에서는 새로운 Linux 사용자에게 사용자 지정 셸 스크립트를 안정적으로 저장하는 위치, 사용자 지정 셸 함수 및 라이브러리를 작성하는 방법, 다른 스크립트에서 라이브러리의 기능을 사용하는 방법을 보여줍니다.
셸 스크립트 저장 위치
전체/절대 경로를 입력하지 않고 스크립트를 실행하려면 $PATH의 디렉토리 중 하나에 저장해야 합니다. 환경 변수.
$PATH를 확인하려면 , 아래 명령을 실행합니다.
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
일반적으로 bin 디렉토리가 사용자 홈 디렉토리에 존재하는 경우 자동으로 사용자의 $PATH에 포함됩니다. . 여기에 쉘 스크립트를 저장할 수 있습니다.
따라서 bin 디렉토리(Perl도 저장할 수 있음) , Awk 또는 Python 스크립트 또는 기타 프로그램):
$ mkdir ~/bin
다음으로 lib라는 디렉터리를 만듭니다. (라이브러리의 약자) 자신의 라이브러리를 보관할 곳입니다. C, Python 등과 같은 다른 언어에 대한 라이브러리를 보관할 수도 있습니다. 그 아래에 sh라는 다른 디렉토리를 만듭니다.; 이것은 특히 쉘 라이브러리를 저장합니다:
$ mkdir -p ~/lib/sh
자신만의 셸 함수 및 라이브러리 만들기
쉘 함수 스크립트에서 특별한 작업을 수행하는 명령 그룹입니다. 다른 프로그래밍 언어의 절차, 서브루틴 및 함수와 유사하게 작동합니다.
함수를 작성하는 구문은 다음과 같습니다.
function_name() { list of commands }
예를 들어 스크립트에 날짜를 표시하는 함수를 작성할 수 있습니다. 다음과 같이:
showDATE() {date;}
날짜를 표시하고 싶을 때마다 , 이름을 사용하여 위의 함수를 호출하기만 하면 됩니다.
$ showDATE
쉘 라이브러리 는 단순히 셸 스크립트이지만 나중에 다른 셸 스크립트에서 호출할 수 있는 함수만 저장하도록 라이브러리를 작성할 수 있습니다.
다음은 libMYFUNCS.sh라는 라이브러리의 예입니다. 내 ~/lib/sh에서 더 많은 기능 예제가 있는 디렉토리:
#!/bin/bash #Function to clearly list directories in PATH showPATH() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator for DIR in $PATH ; do echo $DIR ; done IFS="$oldifs" #restore old internal field separator } #Function to show logged user showUSERS() { echo -e “Below are the user logged on the system:\n” w } #Print a user’s details printUSERDETS() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator read -p "Enter user name to be searched:" uname #read username echo "" #read and store from a here string values into variables using : as a field delimiter read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep "^$uname")" #print out captured values echo -e "Username is : $username\n" echo -e "User's ID : $uid\n" echo -e "User's GID : $gid\n" echo -e "User's Comments : $comments\n" echo -e "User's Home Dir : $homedir\n" echo -e "User's Shell : $shell\n" IFS="$oldifs" #store old internal field separator }
파일을 저장하고 스크립트를 실행 가능하게 만드십시오.
라이브러리에서 함수를 호출하는 방법
lib에서 함수를 사용하려면 , 먼저 lib를 포함해야 합니다. 함수가 사용될 쉘 스크립트에서 아래 형식으로:
$ ./path/to/lib OR $ source /path/to/lib
따라서 printUSERDETS 기능을 사용합니다. 라이브러리 ~/lib/sh/libMYFUNCS.sh에서 아래와 같이 다른 스크립트에서.
특정 사용자의 세부 정보를 인쇄하기 위해 이 스크립트에 다른 코드를 작성할 필요가 없습니다. 기존 함수를 호출하기만 하면 됩니다.
이름이 test.sh인 새 파일을 엽니다. :
#!/bin/bash #include lib . ~/lib/sh/libMYFUNCS.sh #use function from lib printUSERDETS #exit script exit 0
저장하고 스크립트를 실행 가능하게 만들고 실행하십시오:
$ chmod 755 test.sh $ ./test.sh
이 기사에서는 쉘 스크립트를 안정적으로 저장하는 위치, 고유한 쉘 함수 및 라이브러리를 작성하는 방법, 일반 쉘 스크립트의 라이브러리에서 함수를 호출하는 방법을 보여주었습니다.
다음으로 Vim을 구성하는 간단한 방법을 설명합니다. IDE로 Bash 스크립팅용. 그때까지 항상 TecMint에 연결하고 아래 피드백 양식을 통해 이 가이드에 대한 생각을 공유하세요.