티스토리 뷰

IoT 과정

User Input

gaelim 2017. 7. 5. 17:00
반응형

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



shift

man sh-posix  // shift는 built-in cmd 이다. posix shell manual에서 확인가능

% shift [n]
           Rename the positional parameters from n+1 ... to 1 ....  The
           default value of n is 1.  n can be any arithmetic expression that
           evaluates to a nonnegative number less than or equal to $#.

default는 첫번째 parameter만큼 shift 한다. 2를 받으면 1, 2 가 사라지며 3부터 1이 된다. 사라진 녀석들은 완전히 사라진다.


흥미로운 예


$ 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



반응형

'IoT 과정' 카테고리의 다른 글

Shell Arithmetic  (0) 2017.07.06
Designing Program Output  (0) 2017.07.06
Variable  (0) 2017.07.05
Shell Scripting  (0) 2017.07.05
POSIX Shell Programming  (0) 2017.07.05