변환 처리_11 미정의 변수를 에러로 처리해서 실수 방지하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: set
키워드: 미정의, 변수, 에러, 빈 문자열
사용처: 스크립트에서 정의 안 된 변수를 사용하면 에러 종료하고 싶을 때
실행예제
./set-u.sh
./set-u.sh: line 7: COP_DIR: unbound variable
스크립트
#!/bin/sh
set -u #------- 1
COPY_DIR=/myapp/work
# COPY_DIR이 아니라 COP_DIR이라고 실수했다!
cp myapp.log $COP_DIR
해설
이 스크립트는 변수명을 잘못 타이핑해서 미정의 변수를 쓰게 될 때...
변환 처리_10 명령어 출력 결과를 파일명에 포함해서 그 파일명을 대상으로 명령어를 실행할 때 보기 쉽게 하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: hostname, grep
키워드: 명령어 치환, 끼워넣기, 네스트
사용처: 명령어 치환 처리를 끼워 넣고(네스트) 싶을 때
실행예제
$ ./comsub.sh
Error counts: 2
스크립트
#!/bin/sh
err_count=$(grep -C "ERROR" /var/log/myapp/$(hostname).log) #--- 1
echo "Error counts: $err_count"
해설
이 스크립트는 hostname 명령어로 파일명을 조합한 로그 파일에서 ERROR라는 문자열을 검색하여 일치...
변환 처리_09 언더스코어 등을 포함한 문자열에서 변수를 명확하게 구분하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: wc
키워드: 변수명, 문자열, 구분
사용처: 변수명 뒤에 이어진 문자열과 변수명을 명확하게 구분하고 싶을 때
실행예제
$ ./varname.sh
342 20150125_log
스크립트
#!/bin/sh
today="20150125"
# 셸 변수 today가 확장됨
wc -l ${today}_log
해설
이 스크립트는 20150125_log 라는 로그 파일의 줄 수를 표시합니다. wc 명령어는 파일 문자열과 줄 수를 조사하는 명령어로 -l 옵션을 쓰면 파일 줄 수를 표시합니다. 여기서 파일명이 “셸...
변환 처리_08 HTML 파일에서 태그 속에 적힌 주석을 추출해서 그대로 실행하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: sed, eval
키워드: 명령어, 변수 확장
사용처: 파일에 적힌 문자열을 추출해서 명령어로 실행하고 싶을 때
실행예제
$ ./eval.sh
Sat Jul 4 21:41:24 JST 2015
-rw-rw-r--. 1 user1 user1 11968 Oct 26 12:32 myapp.log
스크립트
#!/bin/sh
filename="myapp.log"
eval $(sed -n "s/<code>\(.*\)<\/code>/\1/p" command.htm)
해설
이 스크립트는 com...
변환 처리_07 문자 속 공백문자를 포함한 문자열 변수를 인수로 쓰기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: echo
키워드: 공백문자, 스페이스, 문자열, 큰따옴표
사용처: 공백문자(스페이스)를 포함한 문자열을 한 문장으로 다루고 싶을 때
실행예제
$ ./space-str.sh
ERROR: invalid value
스크립트
#!/bin/sh
result="invalid value"
if [ "$result" = "invalid value" ]; then #--- 1
echo "ERROR: $result" 1>&2
exit 1
fi
해설
이 스크립트는 공백문자를 포함한 문자열을 i...
변환 처리_06 변수나 함수를 외부 파일로 작성하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: .(닷 명령어)
키워드: 외부 파일, 읽기, 정의 파일
사용처: 여러 셸 스크립트에서 공통된 설정값이나 함수를 사용하는데 그런 값과 함수를 외부 파일로 정의하고 싶을 때
실행예제
$ ./source.sh
21:24:49
large-file.tar.gz -> /var/tmp/myapp/large-file.tar.gz
21:24:57
스크립트
#!/bin/sh
. ./env.sh #------------- 1
nowtime
cp -i -v large-file.tar.gz "$WORK_DIR"
nowtime
...
변환 처리_05 작은따옴표 안에서 작은따옴표 쓰기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: echo
키워드: 문자열, 큰따옴표, 작은따옴표
사용처: 작은따옴표로 둘러싼 문자열 안에서 변수 확장이나 작은따옴표 기호를 사용하고 싶을 때
실행예제
$ ./single-quote.sh
It costs $100? I can't believe it!
스크립트
#!/bin/sh
price=100
str='It costs $'$price'? I can'\''t believe it!' #----- 1
해설
이 스크립트는 셸 변수 str 내용을 echo 명령어로 표시합니다. 변수 str에 대입할 때 문자열 ...
195 post articles, 28 pages.