User Input
Read
man read //read 메뉴얼 페이지 참조
Positional Parameters
prog.sh arga argb argc // prog.sh $0, arga $1, argb $2, argc $3
Positional Parameters는 parent shell의 환경변수로 child shell에 넘어간다.
흥미로운 예
$ set asd qwd asd zxc asf dg
$ echo $1
asd
$ echo $2
qwd
$ echo $3
asd
$ echo $4
zxc
$ echo $5
asf
$ echo $6
dg
$ echo $* //parameter 1개로 넘어감
asd qwd asd zxc asf dg
$ echo $@ //parameter 6개로 넘어감
asd qwd asd zxc asf dg
$ echo $# //parameter 갯수
6
$ read line
3km4kmwqkrm qwqkejqwkejqwk alsdla z zlk laskdlaskdlk
$ set $line
$ echo $1
3km4kmwqkrm
$ echo $2
qwqkejqwkejqwk
$ echo $4
z
$(var:-alternative) 변수가 null이거나 unset이면 대체값을 보냄
$(var:=alternative) 변수가 null이거나 unset이면 대체값을 보내고 대체 값으로 설정
$(var:?invoked) 변수가 null이거나 unset이면 대체값을 stderr로 보냄
set -a : 선언된 변수들을 자동으로 환경변수화 시킴
set -f : 메타캐릭터사용을 이용한 파일명 substitution을 멈춘다.
set -- : Ignores any options that follow on the same command line