셸 판단 과 비교

3915 단어
$?상태
echo $?
    0   表示运行成功
    1125   表示运行失败
    126 表示找到了该命令,但是无法运行
    127 表示未找到该命令
    >128    表示该命令被系统强制结束

테스트 구조 (여러 가지 가 있 습 니 다. 표현 식 을 판단 하 는 데 사용 되 는) 1: test 표현 식 2: [표현 식] 3: if, case, while 문 구 를 연결 하여 절차 제어 문장의 판단 조건 으로 합 니 다.
정수 비교 연산 자 (문자열 과 다른 연산 비교 에 사용 할 수 없습니다)
    [ num1 -eq num2 ]   #如果num1等于num2,测试结果为0
    [ num1 -ge num2 ]   #如果num1大于或等于num2,测试结果为0
    [ num1 -gt num2 ]   #如果num1大于num2,测试结果为0
    [ num1 -le num2 ]   #如果num1小于或等于num2,测试结果为0
    [ num1 -lt num2 ]   #如果num1小于num2,测试结果为0
    [ "$num1" -ne num2 ]    #如果$num1变量的值不等于num2,测试结果为0($num1的值必须是整数)

문자열 연산 자 (문자열 이 비어 있 는 지, 두 문자열 이 같 거나 같 지 않 은 지 테스트 하 는 데 사용)
    test string     #测试字符串string是否不为空,不为空,测试结果为0
    [ -n string ]       #测试字符串string是否不为空,不为空,测试结果为0
    [ -z string ]       #测试字符串string是否为空,为空,测试结果为0
    [ string1 = string2 ]   #测试字符串string1是否与string2相同,相同,测试结果为0
    [ string1 != string2 ]  #测试字符串string1是否与string2不相同,不相同,测试结果为0
    [ "$string1" != string2 ]   #测试变量string1的值是否与字符串string2不相同,不相同,测试结果为0

파일 연산 자 (파일 이름, 경로 이름, 디 렉 터 리 이름 일 수 있 습 니 다)
    [ -d file ]     #测试file是否为目录,是目录,测试结果为0
    [ -e file ]     #测试file是否存在,若存在,测试结果为0
    [ -f file ]     #测试file是否为普通文件,若是,测试结果为0
    [ -r file ]     #测试file是否是进程可读文件,若是,测试结果为0
    [ -s file ]     #测试file的长度是否不为0,若是,测试结果为0
    [ -w file ]     #测试file是否为进程可写文件,若是,测试结果为0
    [ -x file ]     #测试file是否为进程可执行文件,若是,测试结果为0
    [ -L file ]     #测试file是否符号化链接,若是,测试结果为0

논리 연산 자 (여러 조건 이 진짜 인지 가짜 인지 테스트 하거나 논리 비 테스트 단일 표현 식 을 사용 합 니 다)
    [ ! expression ]    #逻辑非,如果expression表达式为假,那么测试结果为真0
    [ expression1 -a expression2 ]  #逻辑与,若两个表达式同时为真,那么测试结果为真0
    [ expression1 -o expression2 ]  #逻辑或,若两个表达式中有一个是真,那么测试结果为真0
    [ ! -e /etc ]       #使用逻辑非,测试/etc目录不存在,(当然结果为假)
    [ 15 -eq 20 -a -d /etc ]    #使用逻辑与,测试两个表达式15 -eq 20 与-d /etc (当然结果为假)

 

좋은 웹페이지 즐겨찾기