6. exit(종료) |
1) 요약 : 명령행이나 쉘 스크립트 종료
2) 사용 방법 : exit [n]
3) 추가 설명
쉘 스크립트 문장 내에서 스크립트를 종료합니다. exit 0은 성공적인 종료를 0이 아닐 때는 실패를 나타냅니다. 터미널 상에서 명령어로 사용할 경우 터미널을 종료시키거나 로그인 될 쉘을 빠져나옵니다.
<exit 스크립트(파일명 : exitscript)>
스크립트 | 설명 |
#!/bin/bash | bash 쉘로 스크립트가 실행 |
echo "스크립트 시작" | "스크립트 시작"을 화면에 출력 |
#exit 0 |
현재 주석9#)으로 표시가 되어 있음 #을 제거할 경우 스크립트를 종료하고 나가게 됨 |
echo "스크립트 종료" |
"스크립트 종료"를 홤녀에 출력 |
<스크립트 실행>
먼저 exit를 사용하지 않았을 경우를 생각해봅니다.
# ./exitscript
스크립트 시작
스크립트 종료
그리고 exit를 사용한 경우를 생각해 봅니다.
스크립트를 끝까지 실행하지 않고, exit를 만난 시점에서 빠져 나옵니다.
# ./exitscript
스크립트 시작
7. exports(변수 지정) |
1) 요약 : 변수를 설정
2) 사용 방법 : export [옵션] 변수명=설정
3) 옵션
-f : 함수를 가리킴
-p : export 목록을 출력
-n : export 속성을 제거
4) 추가 설명
변수를 지정하는 명령어입니다. 현재 시스템에 설정되어 있는 변수 목록을 볼 수 있습니다.
# export
declare -x COLORTERM="gnome-terminal"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-Lg0Ay77NCb,guid=jl2rjkjd2j9djksjf20
declare -x DEFAULTS_PATH="/usr/share/gconf/gnome.default.path"
declare -x DESKTOP_SESSION="gnome"
declare -x DISPLAY=":0.0"
declare -x GDMSESSION="gnome"
declare -x GDM_KETBOARD_LAYOUT="us"
declare -x GDM_LANG="ko_KR.utf9"
declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated"
... 이하 생략 ...
시스템의 qt 디렉터리를 가리키는 변수은 QTDIR을 설정해 봅니다.
$ export QTDIR="/usr/lib/qt-4.7"
$ export | grep QTDIR
declare -x QTDIR="/usr/lib/qt-4.7"
expor의 목록을 파이프(|)로 받아 grep 명령어로 "QTDIR" 문자열을 검사해 해당 줄만 출력합니다. export 되어 있음을 확인할 수 있습니다.
8. expr(표현식 평가) |
1) 경로 : /usr/bin/expr
2) 요약 : 지정한 인수를 표현식으로 인식
3) 사용 방법 : expr [인수]
4) 추가 설명
expr 명령어는 쉘 스크립트를작성할 때 자주 쓰입니다. 예를 들어 주어진 인수를 계산식으로 인식하여 연산할 수 있습니다.
아래는 이에 대한 간단한 예제 입니다.
# expr 1 + 2
3
일반적으로는 문자열 연산이 가능한 식으로 인식하여 결과값을 돌려줍니다.
※ 항목 하나 하나를 띄어 쓸 때 만 원하는 결과를 얻을 수 있습니다.
"1 + 2"가 아니라 "1+2"로 쓰면 문자열로 인식합니다.
9. false(항상 실패) |
1) 경로 : /bin/false
2) 요약 : 결과값을 실패나 거짓으로 반환
3) 사용 방법 : false [옵션]
4) 옵션
--help : 사용법을 출력
--version : 버전 정보를 출력
5) 추가 설명
false는 아무런 작업을 하지 않고 실행 결과값을 실패로만 반환합니다. 주로 쉘 스크립트 문법에서 사용하고 실패 처리를 테스트 하거나 디버깅 할 때 사용합니다.
echo $? 명령어는 마지막 실행한 명령의 성공(0), 실패(1)를 출력합니다.
# echo $?
0
# false
# echo $?
1
10. for(for 루프문) |
1) 요약 : for를 이용한 루프문
2) 사용 방법
for x in 목록
do
명령해
done
3) 추가 설명
for는 목록에 있는 것을 하나씩 변수(x)에 넣어 do를 실행합니다. 목록은 모두 do 아래의 명령행을 실행하고 빠져나갑니다.
스크립트 | 설명 |
#!/bin/bash | bash 쉘로 스크립트가 실행 |
for i in test1 test2 test3 | for문으로 test1부터 test3까지 차례로 변수 i에 넣으면서 루프를 수행 |
do echo "$i" |
i에 받은 값을 do 아래 명령에서 실행 echo로 i가 무엇인지 출력 |
done |
test3까지 마치면 done 아래를 실행 |
<스크립트 실행>
위 스크립트를 실행합니다.
# ./forscript
test1
test2
test3
루프에 들어가는 목록은 위와 같이 지정해 줄 수 있으며 sed나 awk 등의 라인 편집기에서 한줄씩 입력받아 사용합니다.
아래 예제는 ftp 서버에 접속한 /var/log/xferlog 파일의 로그를 분석하여 그 중 chan 사용자의 로그 정보만을 따로 분리하는 스크립트입니다. 이는 awk 명령어로 xferlog 파일에서 chan가 검색되는 라인을 추출하여 그 중 아홉 번째 필드의 로그를 변수 j로 저장하여 File 디렉터리에 저장합니다.
#!/bin/bash
mkdir File // File 디렉터리 생성
for j in `awk 'chan/ {print $9}' /var/log/xferlog`
do
cp --parents $j File/ // $j 내용을 File 디렉터리에 경로와 함께 복사
done
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 쉘 명령어 4탄(sleep, test, true, while) (0) | 2020.02.14 |
---|---|
[RHEL6] 쉘 명령어 3탄(help, history, if, let, sh) (0) | 2020.02.14 |
[RHEL6] 쉘 명령어 1탄(#!, break, case, dirs, enable) (0) | 2020.02.14 |
[RHEL6] 서버 및 클라이언트 명령어 10탄(ypchsh, ypmatch, yppasswd, yppoll, yppush, ypserv) (0) | 2020.02.14 |
[RHEL6] 서버 및 클라이언트 명령어 9탄(write, xinetd, ypbind, ypcat, ypchfn) (0) | 2020.02.14 |
댓글