검색결과 리스트
글
===========================================================
* read : 쉘스크립트파일에서 커맨드라인 입력받기
스크립트파일 안에서
read
커맨드라인에서
aaa<Enter>
다시 스크립트파일로
aaa가 들어온다.
!!! 그러면, 여러줄을 입력받으려면?
read로 스크립트파일에서 탈출하여 커맨드라인으로 간 상태서...
aaa\<Enter>
bbb\<Enter>
ccc<Enter>
하면...
스크립트파일로 aaa bbb ccc가 들어온다.
===========================================================
* eval : 쉘스크립트파일안에서 쉘명령 실행
스크립트파일안에서 문자열로 표기된 쉘명령을 실행하려면 eval을 사용해야함.
ex) 스크립트파일 안
eval "ls -al"
===========================================================
* echo와 escape(\:backslash,'':quote) : 문자열, 출력
echo 뒤 문자열은 구지 ""로 감쌀 필요없다.
ex) a=하하하
echo 호호호 $a
echo "호호호 "$a
echo "호호호 $a"
*** 다 똑같은 결과
echo의 기본옵션은 특수문자(앞에 /백슬래쉬를 붙임)에 대해 escape시킨다.
ex) echo "aaa\nbbb"
aaa\nbbb
이를 제대로 처리(해석)하려면 -e 옵션(/을 해석함)을 준다.
ex) echo -e "aaa\nbbb"
aaa
bbb
다시 특수문자를 escape시키려면 -E 옵션을 준다.
ex) echo -E "aaa\nbbb"
aaa\nbbb
-n : 스크립트파일에서 echo를 호출할 때마다 새로운 라인이 생성되어 출력되는데 이를 막고, 바로전 출력된 라인에 붙여 출력한다.(커맨드모드에선 먹지않는다.)
*** 변수값을 출력하지않고 변수명을 그대로 출력하려면?
-> ''(single quote)를 사용한다.
ex) a=aaa
echo '하하하 $a'
하하하 $a
*** ''은 모든 것을 다 escape 시키기에 full quoting이라 하고
""은 $와 같은 몇몇 제어문자는 해석하기에 partial quoting이라한다.
!!!주의) 본쉘(bin/sh) 스크립트파일에서 문자열은 개행문자(\n)없어도 파일라인상으로 그대로 읽어 처리하나, bash에서는 스크립트파일안 문자열을 개행시키려면 반드시 개행문자(\n)를 삽입해야하고 더불어 커맨드라인 상에서 제대로 표시하기위해 공백까지 제거시켜야한다(\r\n).
<tip3013> ``(backquote) : 명령어치환(Command Subsitution) [제어문자]
문자열안에 들어있는 쉘명령어를 문자열로 인식하지않고 쉘명령어로 재해석한다.
ex) echo `cat file1` #역따옴표(backquote)임에 유의!!!
*** 스크립트파일 매개변수나 read인자로 특정 명령구문을 넘길 때 유용하다.
RECENT COMMENT