쉘 스크립트란 간단히 UNIX 커맨드 등을 나열해서 실행하는 것.
언제 어떤 조건으로 어떠한 명령을 실행시킬 것인가, 파일을 컨텐츠를 읽어들일 것인가, 로그 파일을 작성한느 것 등을 할 수 있다.
예시로 다음과 같이 test.sh 파일을 작성한다.
#!/bin/sh
echo "Hello, World!"
-쉘 스크립트 파일은 기본적으로 .sh 확장자로 작성한다.
-실제 코드를 작성하기 전에 맨 처음의 행에는 #!/bin/sh를 쓴다. 시스템에 지금부터 셸 스크립트를 쓴다는 사실을 알려주기 위함이다. 그러나 bash의 독자적인 기능을 사용하는 경우 다르게 작성한다.
-쉘 스크립트 파일(test.sh)를 실행하기 위해서는, 터미널에서 파일이 저장된 장소에 가서 아래의 커맨드 중 하나를 선택해서 실행해야한다.
$ chmod 755 test.sh
$ ./test.sh
$ sh test.sh
$ bash test.sh
#!/bin/sh
# 여기는 코멘트이다.
#코멘트처리된 구문은 실행되지 않는다.
echo "Hello, World!"
echo로 출력, read로 입력할 수 있다.
#!/bin/sh
read NAME
echo "Hello, $NAME!"
실행하면 결과는 아래와 같다.
$ ./test.sh
Tensai
Hello, Tensai!
입력을 대기하고 있는 경우, 스크립트는 실행되지 않는다.
Bash에서는 -e 플래그로 특수 텍스트를 이스케이프할 수 있다.
#!/bin/bash
echo -e "Hello\n$NAME!" #개행된다.
-변수의 이름으로써 영무자, 숫자 그리고 언더바가 사용된다.
-변수에 값을 전달할 때는 = 의 앞, 뒤에 공백 없이 작성한다. 문자열인 경우 "(쌍따옴표)로 감싼다.
-변수에 액세스할 때 변수명의 앞에 $를 넣는다. 혹은 $를 넣어서 변수를 {}로 감싼다.
-하나의 변수에 한 개의 값만 보존된다.
-변수의 값이 덮어쓰기되는 것을 방지하기 위해서는 readonly를 사용한다.
-변수를 unset으로 삭제할 수 있다. (readonly 변수 삭제 불가능)
#!/bin/sh
var="변수1"
VaR_2="변수2"
echo "Var_2=$VaR_2"
VaR_2="VaR_2가 변경됐다"
echo ${VaR_2}
readonly var
var="readonly var를 바꿔보자"
실행결과는 다음과 같다.
$ ./test.sh
Var_2=변수2
VaR_2가 변경됐다.
shell.sh: line 11: var: readonly variable
쉘 스크립트에서는 아래와 같은 특별한 변수가 있다.