js css html

if [ $? -eq 0 ];then 是什么意思?

2023-01-06  本文已影响0人  Gakki0725
作者:Gakki

问题描述

if [ $? -eq 0 ];then是什么意思?

Linux的命令执行退出状态

状态值 含义
0 表示运行成功,程序执行未遇到任何问题
1-125 表示运行失败,脚本命令、系统命令错误或参数传递错误
126 找到了该命令但无法执行
127 未找到要运行的命令
>128 命令被系统强行结束

其他

$0:shell或shell脚本的名字
$*:以一对双引号给出参数列表
$@:将各个参数分别加双引号返回
$#:参数的个数
$_:代表上一个命令的最后一个参数
$$:代表所在命令的PID
$!:代表最后执行的后台命令的PID
$?:代表上一个命令执行后的退出状态

shell 比较

数值比较
-eq:表示等于,如:if [ $var1 -eq 100 ]
-ne:表示不等于,如:if [ $var1 -ne 100 ]
-gt:表示大于,如:if [ $var1 -gt 100 ]
-ge:表示大于等于,如:if [ $var1 -ge 100 ]
-lt:表示小于,如:if [ $var1 -lt 100 ]
-le:表示小于等于,如:if [ $var1 -le 100 ]
字符串比较(也可用于数值比较)
==:表示相等,如:if [  $var1 == $var2 ]
!=:表示不相等,如: if [  $var1 != $var2 ]
=~:表示前边变量包含后边变量则为真,如:if [[  $var1 =~ $var2 ]]
注:本质上=~是正则匹配单层中括号不支持正则需要双层中括号
字符串测试运算
-z 字符串:表示字符串的长度为零,如:if [ -z $var1 ]
-n 字符串:表示字符串的长度不为零,如:if [ -n $var1 ]
文件测试运算
-e 文件名:表示如果文件存在则为真,如:if [ -e $var1 ]
-r 文件名:表示如果文件存在且可读则为真,如:if [ -r $var1 ]
-w 文件名:表示如果文件存在且可写则为真,如:if [ -z $var1 ]
-x 文件名:表示如果文件存在且可执行则为真,如:if [ -x $var1 ]
-s 文件名:表示如果文件存在且至少有一个字符则为真,如:if [ -s $var1 ]
-d 文件名:表示如果文件存在且为目录则为真,如:if [ -d $var1 ]
-f 文件名:表示如果文件存在且为普通文件则为真,如:if [ -f $var1 ]
-c 文件名:表示如果文件存在且为字符型特殊文件则为真,如:if [ -c $var1 ]
-b 文件名:表示如果文件存在且为块特殊文件则为真,如:if [ -b $var1 ]
逻辑运算(与/或/非)
-a或者&&:与运算,如:if [ $var1 == '' -a $var2 != '' ] 或 if [ $var1 == '' ] && [ $var2 != '' ]
-o或者||:或运算,如:if [ $var1 == '' -o $var2 != '' ]或if [ $var1 == '' ] || [ $var2 != '' ]
!:非运算,如:if ! [ $var1 == '' ]或if [ ! $var1 == '' ]
上一篇 下一篇

猜你喜欢

热点阅读