728x90
반응형
흐름 제어 : if 분기
if의 사용
x=5
if [ $x = 5 ]; then
echo "x eqauls S."
else
echo "x doesn not equal S."
fi
if commands; then
commands
[elif commands; then
commands...]
[else
commands]
fi
test의 사용
if 명령어와 가장 흔하게 사용되는 명령어는 test이다. 다양한 검사와 비교 작업을 수행할 수 있는데 두 가지 형태로 사용된다.
test expression
[expression] # 더 많이 사용됨
파일 표현식
자주 사용되는 파일 표현식.
링크에서 퍼왔으며, 사실 더 많이있다..
https://www.oreilly.com/library/view/unix-text-processing/9780810462915/Chapter12.html
정수 표현식
제어 연산자 : 분기의 또 다른 방법
bash는 분기를 수행할 수 있는 두 개의 제어 연산자를 제공한다.
&&(AND) ||(OR) 연선자는 [[ ]] 합성 명령어에서 사용되는 논리 연산자와 수행하는 방식이 같다.
command1 && command2 # command1과 comman2모두 실행되면 command1이 성공했다는 의미
command1 || command2 # command1과 command2모두 실행되면 command1은 실패했다는 의미
예시를 들어보면
mkdir temp && cd temp
temp라는 디렉토리를 생성하고 성공하면 현재 작업 디렉토리를 temp로 바꿔라.
두 번째 명령언 mkdir 명령이 성고적으로 수행되어야만 실행된다.
[ -d temp ] || mkdir temp
테스트가 실패해야만 디렉토리가 생성되는 것을 의미
흐름 제어 : while 루프
count=1
while [ count -le 5 ];do
echo $count
count=$((count+1))
done
echo "Finished"
while명령어의 문법
while commands; do commands; done
※ break, continue 명령어 사용할 수 있음
흐름 제어 : case 분기
case문의 문법
case word in
[pattern [|pattern]...) commands ;;]...
esac
a) => a와 일치하는 단어
[[:alpha:]] => 하나의 알파벳 문자와 일치하는 단어
???) => 정확히 세 글자로 이루어진 단어
*.txt) => .txt문자열로 끝나는 단어
*) => 모든 단어 (마지막 패턴으로 사용해야함)
#!/bin/bash
read -p "enter word > "
case $REPLY in
???) echo "~~~";;
*.txt) echo "~~~";;
esac
728x90
반응형
'프로그래밍 노트 > Linux' 카테고리의 다른 글
I/O 리다이렉션 (입출력 방향 지정) (0) | 2020.02.10 |
---|---|
rsync 사용법[데이터 백업, 원격 전송] (0) | 2020.02.10 |
쉘 스크립트란? (0) | 2019.12.12 |
쉘스크립트 if 조건 종류 (0) | 2019.12.09 |
쉘스크립트 기본문법 (0) | 2019.12.03 |