3. 셸 의 테스트 와 판단 용법
test 表达式
또는 [ 表达式 ]
真
시 귀환 0值
, 조건 은 假
귀환 非0值
후 와 [
전의 빈 칸 이 없어 서 는 안 된다.]
-eq
=
-ge
>=
-gt
>
-le
<=
-lt
<
-ne
!=
에 해당 string
-n string
-z string
$ test 1 -eq 1
$ echo $?
0
$ test 1 -eq 2
$ echo $?
1
테스트 에 문자열 이 하나 밖 에 없습니다. 연산 자가 없 을 때: 반환 값 은 0 입 니 다. 예:
$ test 1
$ echo $?
0
$ test 0
$ echo $?
0
$ test 001021
$ echo $?
0
$ [ 344 ]
$ echo $?
0
string1 = string2
문자열 이 비어 있 지 않 은 지 테스트 합 니 다 string1 != string2
.주의 하 다양쪽 에 빈 칸 이 있어 야 합 니 다. 그렇지 않 으 면 빈 문자열 로 테스트 합 니 다.
$ test ""
$ echo $?
1
$ test -n ""
$ test -n "" ; echo $?
1
$ test "" ; echo $?
1
$ test "hhh" = "hhh"
$ echo $?
0
$ test "hhh" = "hhh "
$ echo $?
1
$ test "hhh"!="hhh"
$ echo $?
0
-d
file 이 디 렉 터 리 -e
file 이 존재 하 는 지 여부 -f
file 이 일반 파일 -r
file 프로 세 스 가 읽 을 수 있 는 지 여부 -s
file 길이 가 0 -w
file 이 쓸 수 있 는 지 여부 -x
file 이 실행 가능 한 지 여부 -L
file 이 기호 화 링크 인지 여부 (L 소문 자 불가) ! 表达式
가 반 表达式1 -a 表达式2
을 취 하 는 동시에 진 表达式1 -o 表达式2
은 진 판 가름
if 뒤에 있 는 표현 식 은 두 가지 형식 이 있 습 니 다.
(( 表达式 ))
여기 표현 식 에서 연산 자 를 사용 해 야 합 니 다 普通运算符
(=, = 등) [ 表达式 ]
여기 표현 식 에서 연산 자 를 사용 해 야 합 니 다 测试运算符
(- eq, - lt, - ge 등)하나의 demo 는 용법 을 설명 할 수 있 습 니 다.
$ cat test.sh
#!/bin/bash
echo "输入一个数进行测试"
read num
if [ 1 -eq $num ] ; then
echo 输入了1
exit 0
elif [ $num -lt 5 ]
then
echo "大于1小于5"
exit 2
else
case "$num" in
5)
echo "输入了5";;
6)
echo "输入了6";;
7)
echo "输入了7";;
*)
echo "大于7";;
esac
exit 3
fi
$ ./test.sh ; echo '$?:'$?
输入一个数进行测试
1
输入了1
$?:0
$ ./test.sh ; echo '$?:'$?
输入一个数进行测试
3
大于1小于5
$?:2
$ ./test.sh ; echo '$?:'$?
输入一个数进行测试
6
输入了6
$?:3
$ ./test.sh ; echo '$?:'$?
输入一个数进行测试
8
大于7
$?:3
주의해 야 할 것 은 케이스 의 모든 일치 하 는 조건 의 실행 뒤에 반드시 있어 야 한 다 는 것 이다.그렇지 않 으 면 오 류 를 제시 할 것 이다. 나 는 이전에 다음 을 계속 실행 하 는 줄 알 았 다.
$ let "num=2#10" ; echo $num
2
8 진 표시:
$ let "num=010";echo $num
8
$ let "num=8#10" ; echo $num
8
16 진수 표시:
$ let "num=16#10" ; echo $num
16
#
진 이 더 넓 고 모든 진 이 가능 하 다 는 뜻 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.