회사 업무중에 사용되는 Shell Script에 대해서 하나하나 예제를 통해 알아보도록 하자.
실제 파견업무를 나와서 혼자 Shell Script를 짤려니, 기존에 다른사람이 짜놓은것을 이용하지 않고 맨땅에 해딩을 너무 하게 되었다. 하나하나 알아보자.
[1] 현재 파일이 존재하는지 체크하는 방법
if [ -f $LOGFILE ] ==> 파일이 있는지 체크.
then
echo "File is Exists"
>> $LOGFILE ==> 없는경우 >> redirect를 통해 파일생성
else
echo "File is Not Exists"
설명 : Shell Script의 if문은 별도 설명하지 않겠다. 옵션만 본다면 위 코드가 이해가 될것이다.
-b 파일 : 파일이 블럭장치 파일이면 참.
-c 파일 : 파일이 문자 장치이면 참
-d 파일 : 파일이 문자 장치이면 참
-e 파일 : 파일이 문자 장치이면 참
-f 파일 : 파일이 문자 장치이면 참
-L 파일 : 파일이 문자 장치이면 참
-p 파일 : 파일이 문자 장치이면 참
-S 파일 : 파일이 문자 장치이면 참
-r 파일 : 파일이 문자 장치이면 참
-s 파일 : 파일이 문자 장치이면 참
-w 파일 : 파일이 문자 장치이면 참
-x 파일 : 파일이 문자 장치이면 참
[2] 파일의 내용을 읽어와서 특정 C프로그램으로 아규먼트로 넘겨주는 방법
1 #!/bin/bash
2
3 gcc ./decrypt.c
4
5 LOGFILE=result.log
6
7 FILE=password.txt
8
9 TIME=`date +%Y/%m/%d/%H:%M:%S`
10
11 echo "==================== START ======================" >> $LOGFILE
12 echo "PROGRAM START=$TIME" >> $LOGFILE
13 cat $FILE | \
14 while read line
15 do
16 ID=`echo $line | awk -F'|' '{print $1}'`
17
18 PS=`echo $line | awk -F'|' '{print $2}'`
19
20 TIME1=`date +%Y/%m/%d/%H:%M:%S`
21 echo "=================================" >> $LOGFILE
22 echo "START=$TIME1" >> $LOGFILE
23 echo "$ID|$PS" >> $LOGFILE
24
25 for ((i=0;i<10000;i++)); do
26 echo $i
27 done
28
29
30 ./a.out $PS 2>&1 >> $LOGFILE
31 TIME2=`date +%Y/%m/%d/%H:%M:%S`
32 echo "END=$TIME2" >> $LOGFILE
33
34 done
35
36 TIME3=`date +%Y/%m/%d/%H:%M:%S`
37 echo "PROGRAM END=$TIME3" >> $LOGFILE
38 echo "==================== END ======================" >> $LOGFILE
|