개요
#!/bin/sh 를 추가한다. 이 줄은 서뱅이라고 불리며, bash 쉘을 사용하겠다는 의미이다. 일반적으로 #으로 시작하면 주석으로 처리되지만, 서뱅은 주석이 아니며, 스크립트 실행 환경을 설정하는 중요한 명령어이다. 스크립트 파일 실행 방법
sh 스크립트파일경로 - 이 경우는 읽기 권한만 있으면 수행된다. 스크립트파일경로 - 현재 디렉토리에 있는 경우 ./를 추가해서 경로를 작성, 실행 권한이 있어야 한다. 변수
계산식 사용
\*로 작성해야 곱셈으로 인식된다.\( \)를 붙여 사용해야 합니다.파라미터 설정
$파라미터위치 형태로 작성하면 된다.sh 스크립트파일이름 a b c d
$ echo "$0" -> a
$ ehco "$2" -> c
제어문
if
if [표현식]
then
참일 때 수행할 내용
else
거짓일 때 수행할 내용
fi
파일 관련 조건
파일을 읽어야하면 파일이 있는지 없는지 확인해야 한다
-d 파일 경로 : 디렉터리이면 참
-e 파일 경로 : 존재하면 참
-f 파일 경로 : 일반 파일이면 참
-g 파일 경로 : setGID가 설정되면 참
-r 파일 경로 : 읽기 가능이면 참
-s 파일 경로 : 크기가 0이 아니면 참
-u 파일 경로 : setUID가 설정되면 참
-w 파일 경로 : 쓰기 가능이면 참
-x 파일 경로 : 실행 가능이면 참
| /lib/systemd/system/cron_service 라는 파일의 존재 여부를 확인해서 존재하면 존재한다고 그렇지 않으면 없다고 메시지를 출력
if [ -e /lib/systemd/system/cron_service ]
then
echo "파일이 존재합니다."
else
echo "파일이 존재하지 않습니다."
fi
case~esac문
case 데이터 in
값)
값일 떄 수행할 내용;;
값)
값일 떄 수행할 내용;;
값)
값일 떄 수행할 내용;;
*)
나머지 경우에 수행할 내용;;
esac
;;을 추가해주어야 한다. 값 | 값의 형태로 작성하면 된다. and와 or
&&, -a||, -oif [조건] && [조건] 의 형태로 입력
if [-f /lib/systemd/system/cron.service] && [-f ~/if.sh]
then
echo "success"
else
echo "fail"
fi
for~in
for 임시변수 in 데이터나열
do
데이터를 임시변수에 하나씩 대입하고 수행할 문장
done
for i in 1 2 3 4 5
do
hap=`expr $hap + $i`
done
echo $hap
for fname in $(ls *.txt)
do
cat $fname
done
while
while [표현식]
do
표현식이 거짓이 아니면 수행할 내용
done
hap=0
i=1
while [ $i -le 6 ]
do
hap=`expr $hap + $i`
i=`expr $i + 1`
done
echo "Totla: "$hap"
기타 제어문
break, continue, exit, return
함수
생성
이름(매개변수 나열){
함수 내용
return
}
호출
myfunc0 (){
echo "My function"
return
}
myfunc
exit 0
eval
eval"ls -l" -> ls -l 명령어가 실행되어 현재 디렉터리의 파일 목록이 출력됩니다.