Shell Script (4): 조건 부 분기 문 1
이 글 은 주로 세 가지 명령 을 설명 한다. if, test, exit. if 명령 소개 if 명령 은 다음 명령 의 종료 상태 에 따라 해당 하 는 결정 을 내 립 니 다.그 문법 형식 은 다음 과 같다.
if commands; then
commands
[elif commands; then
commands...]
[else
commands]
fi
왜 좀 이해 가 안 되 는 것 같 지? 걱정 하지 마. 뒤에 실례 가 있 을 거 야. 먼저 명령 의 종료 상 태 를 말씀 드 리 겠 습 니 다. 모든 명령 은 실 행 된 후에 해당 하 는 종료 상태 가 있 습 니 다. 0 ~ 255 의 한 숫자 로 0 은 이 명령 이 실 행 된 것 을 나타 내 고 다른 숫자 는 명령 수행 에 실 패 했 음 을 나타 냅 니 다.다음은 하나의 실례 를 통 해 느껴 보 겠 습 니 다.
jason@jason-Lenovo-Y50-70:~$ ls -d /usr/bin
/usr/bin
jason@jason-Lenovo-Y50-70:~$ echo $?
0
jason@jason-Lenovo-Y50-70:~$ ls -d /bin/usr
ls: cannot access /bin/usr: No such file or directory
jason@jason-Lenovo-Y50-70:~$ echo $?
2
이 인 스 턴 스 에서 명령 "ls - d/usr/bin"이 성공 적 으로 실 행 된 다음 "echo $?"를 통 해 명령 "ls - d/usr/bin"의 종료 상 태 를 볼 수 있 습 니 다. 이 명령 이 성공 적 으로 실행 되 었 기 때문에 여기 서 얻 은 종료 상 태 는 0 입 니 다.명령 'ls - d/bin/usr' 에 대해 서 는 이 명령 을 실행 하 는 데 실 패 했 기 때문에 종료 상 태 는 0 이 아 닙 니 다. 그리고 Shell 에는 두 가지 간단 한 명령 이 있 습 니 다. true 와 false 입 니 다.true 명령 에 대응 하 는 종료 상 태 는 0 이 고 false 명령 에 대응 하 는 종료 상 태 는 1 입 니 다.다음 과 같이 보 여 줍 니 다.
jason@jason-Lenovo-Y50-70:~$ true
jason@jason-Lenovo-Y50-70:~$ echo $?
0
jason@jason-Lenovo-Y50-70:~$ false
jason@jason-Lenovo-Y50-70:~$ echo $?
1
jason@jason-Lenovo-Y50-70:~$ if true; then echo "It's true."; fi
It's true.
jason@jason-Lenovo-Y50-70:~$ if false; then echo "It's true."; fi
jason@jason-Lenovo-Y50-70:~$
if 뒤의 명령 의 종료 상태 가 0 일 때 만 then 뒤의 명령 이 실 행 됩 니 다.
2. test 명령 소개 test 명령 은 일반적으로 if 명령 과 함께 사용 합 니 다. test 명령 은 표현 식 결과 가 진짜 인지 가짜 인지 얻 는 데 사 용 됩 니 다. test 뒤의 표현 식 이 사실 이 라면 test 명령 의 종료 상 태 는 0 입 니 다. 그렇지 않 으 면 1 입 니 다.test 명령 은 두 가지 형식의 쓰기 가 있 습 니 다. 다음 과 같 습 니 다.
# First form
test expression
# Second form
[ expression ]
두 번 째 형식의 쓰 기 는 test 라 는 키 워드 를 명확 하 게 쓰 지 는 않 았 지만 test 명령 의 한 형식 이 었 다.두 번 째 형식의 쓰기 에서 주의해 야 할 점 은 괄호 와 그 내부 의 표현 식 사이 의 빈 칸 은 생략 할 수 없습니다.
错误写法:
[expression]
正确写法:
[ expression ]
test 명령 에 대해 서 는 test 뒤에 자주 사용 되 는 표현 식 을 제시 해 야 합 니 다. 이 표현 식 들 은 명령 행 에서 help test 명령 을 실행 하여 가 져 올 수 있 습 니 다. 사용 방식 은 간단 합 니 다.다음은 test 를 사용 하 는 인 스 턴 스 를 보 겠 습 니 다.
# Alternate form
if [ -f .bash_profile ]
then
echo "You have a .bash_profile. Things are fine."
else
echo "Yikes! You have no .bash_profile!"
fi
# Another alternate form
if [ -f .bash_profile ]
then echo "You have a .bash_profile. Things are fine."
else echo "Yikes! You have no .bash_profile!"
fi
"- f. bash profile"표현 식 은 현재 디 렉 터 리 에. bash 가 있다 면profflee 파일 은 이 표현 식 의 결과 가 사실 입 니 다. 그렇지 않 으 면 가짜 입 니 다.또한 help test 명령 을 실행 하면 - f FILE 표현 식 의 역할 을 볼 수 있 습 니 다. - f FILE 표현 식 을 help test 결과 에 소개 하 는 것 을 아래 에 붙 여 넣 습 니 다.
-f FILE True if file exists and is a regular file.
3. exit 명령 Shell 스 크 립 트 에서 exit 명령 은 스 크 립 트 가 여기까지 실 행 될 때 바로 종료 할 수 있 고 exit 뒤에 있 는 종료 상태 코드 를 만 들 수 있 습 니 다. 예 를 들 어 "exit 0"이나 "exit 2"등 입 니 다.
관련 문서
http://linuxcommand.org/lc3_wss0080.php
이전 편: Shell Script (3): 변수, 상수, 포획 명령 결과 다음 편: Shell Script (5): 상호작용 과 산수 연산
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.