스크립트 파일 최상단에 기입. 어떤 쉘로 구문을 분석할지 지시
#!/bin/zsh
#!/bin/sh
#!/bin/bash
#!/bin/zsh
# 나는 주석이다. 프로그램 실행에 영향을 미치지 않지.
=
기호 사이 공백 없어야 함$
기호를 붙이거나 ${}
로 감싸기$
사용 안함.변수 | 역할 |
---|---|
$0 | 스크립트 파일명 |
$1~$9 | 각 매개변수 ($1, $2, $3, ..., $9 로 접근) |
$# | 스크립트에 전달된 매개변수 갯수 |
$* | 모든 매개변수를 하나의 문자열로 처리 |
$@ | 모든 매개변수를 별도 문자열로 처리 |
$? | 직전 실행한 명령어의 종료 값(성공은 0, 실패는 1) |
$$ | 실행된 스크립트의 PID |
$! | 마지막으로 실행된 백그라운드 PID |
#!/bin/zsh
echo $0
echo $1
echo $#
echo $*
echo $@
echo $?
echo $$
echo $!
run: ./script.sh one two three
script.sh
one
3
one two three
one two three
0
60759
0
변수가 아직 설정되지 않았을 때나 빈 문자열 일때 변수를 처리하는 방법
문법 | 역할 |
---|---|
${var} | 변수 값을 바꿔 넣음 |
${var:-value} | 변수가 빈 문자열이거나 아직 설정되지 않은 경우 value 반환. var에 저장되지 않음 |
${var:=value} | ${var:=value} 와 동일하나 var에 저장 됨 |
${var:?value} | 변수가 빈 문자열이거나 아직 설정되지 않은 경우 치환 실패 및, 표준 에러 반환 |
${var:+value} | 변수가 설정되지 않은 경우 value 반환. var에 저장되지 않음 |