linux shell if linux shell if满足多条件

大家好,今天小编来为大家解答以下的问题,关于linux shell if,linux shell if满足多条件这个很多人还不知道,现在让我们一起来看看吧!

Linux | shell脚本-条件判断if和循环语句for

上个章节中,我们学习了判断语句和运算语句。在Shell脚本的使用中,条件判断语句经常与if、else、elif、for和while等语句结合使用,以实现对多种情况的高效判断。

条件判断语句如果语句,通常由如下构成:

if条件判断;then

成功执行操作...

fi

举例:结合整数值比较-eq进行主机在线检查。如运行脚本:vim test1.sh,可得到主机在线或离线的确认结果。

条件判断的双分支结构进一步包括:

if条件判断;then

成功操作...

else

失败操作...

fi

如与字符比较-z一起使用的例子,检查服务运行状态,未运行则启动服务的脚本运行test2.sh。

同时存在多个条件判断的多分支结构如:

if条件判断1;then

条件1成立操作...

elif条件判断2;then

条件2成立操作...

else

其他条件不成立时操作...

fi

以奖品分类为例,根据分数确定不同的奖项,输入范围在0-100分内,并包含奖品分类说明。

所有条件均不成立时的特殊情况操作可以在此结构中包含。

Shell循环结构语句分为for、while和until三种。其中,while和for属于“当型循环”,直到型循环。

for循环的语法如下:

for变量名 in变量值列表

do

循环体

done

例如输出1-254之间的所有偶数,计数并输出数量。

循环结构的应用使得Shell脚本的编写更加灵活,具备自动执行特定操作的机制。

预告下一期内容:将深入探讨Shell脚本中的while和until循环结构及case分支结构的使用方法。

要了解更多详细信息,请访问睿江云计算官网链接:e[链接]

shell脚本中 if 判断时候-s是什么意思

[-s FILE ]如果 FILE存在且大小不为0则为真。

其它说明:

[-a FILE ]如果 FILE存在则为真。

[-b FILE ]如果 FILE存在且是一个块特殊文件则为真。

[-c FILE ]如果 FILE存在且是一个字特殊文件则为真。

[-d FILE ]如果 FILE存在且是一个目录则为真。

[-e FILE ]如果 FILE存在则为真。

[-f FILE ]如果 FILE存在且是一个普通文件则为真。

[-g FILE ]如果 FILE存在且已经设置了SGID则为真。

[-h FILE ]如果 FILE存在且是一个符号连接则为真。

[-k FILE ]如果 FILE存在且已经设置了粘制位则为真。

[-p FILE ]如果 FILE存在且是一个名字管道(F如果O)则为真。

[-r FILE ]如果 FILE存在且是可读的则为真。

[-s FILE ]如果 FILE存在且大小不为0则为真。

[-t FD ]如果文件描述符 FD打开且指向一个终端则为真。

[-u FILE ]如果 FILE存在且设置了SUID(set user ID)则为真。

[-w FILE ]如果 FILE如果 FILE存在且是可写的则为真。

[-x FILE ]如果 FILE存在且是可执行的则为真。

[-O FILE ]如果 FILE存在且属有效用户ID则为真。

[-G FILE ]如果 FILE存在且属有效用户组则为真。

[-L FILE ]如果 FILE存在且是一个符号连接则为真。

[-N FILE ]如果 FILE存在 and has been mod如果ied since it was last read则为真。

[-S FILE ]如果 FILE存在且是一个套接字则为真。

[ FILE1-nt FILE2 ]如果 FILE1 has been changed more recently than FILE2, or如果 FILE1 exists and FILE2 does not则为真。

[ FILE1-ot FILE2 ]如果 FILE1比 FILE2要老,或者 FILE2存在且 FILE1不存在则为真。

[ FILE1-ef FILE2 ]如果 FILE1和 FILE2指向相同的设备和节点号则为真。

[-o OPTIONNAME ]如果 shell选项“OPTIONNAME”开启则为真。

[-z STRING ]“STRING”的长度为零则为真。字符串为空即NULL时为真。

[-n STRING ] or [ STRING ]“STRING”的长度为非零 non-zero则为真。加-n与不加-n结果相同。

Linux里面if -s命令作用是什么

字符串判断

str1= str2当两个串有相同内容、长度时为真

str1!= str2当串str1和str2不等时为真

-n str1当串的长度大于0时为真(串非空)

-z str1当串的长度为0时为真(空串)

str1当串str1为非空时为真

2、数字的判断

int1-eq int2两数相等为真

int1-ne int2两数不等为真

int1-gt int2int1大于int2为真

int1-ge int2int1大于等于int2为真

int1-lt int2int1小于int2为真

int1-le int2int1小于等于int2为真

3文件的判断

-r file用户可读为真

-w file用户可写为真

-x file用户可执行为真

-f file文件为正规文件为真

-d file文件为目录为真

-c file文件为字符特殊文件为真

-b file文件为块特殊文件为真

-s file文件大小非0时为真

-t file当文件描述符(默认为1)指定的设备为终端时为真

3、复杂逻辑判断

-a与

-o或

!非

EXAMPLE:

[-a FILE ]如果 FILE存在则为真。

[-b FILE ]如果 FILE存在且是一个块特殊文件则为真。

[-c FILE ]如果 FILE存在且是一个字特殊文件则为真。

[-d FILE ]如果 FILE存在且是一个目录则为真。

[-e FILE ]如果 FILE存在则为真。

[-f FILE ]如果 FILE存在且是一个普通文件则为真。

[-g FILE ]如果 FILE存在且已经设置了SGID则为真。

[-h FILE ]如果 FILE存在且是一个符号连接则为真。

[-k FILE ]如果 FILE存在且已经设置了粘制位则为真。

[-p FILE ]如果 FILE存在且是一个名字管道(F如果O)则为真。

[-r FILE ]如果 FILE存在且是可读的则为真。

[-s FILE ]如果 FILE存在且大小不为0则为真。

[-t FD ]如果文件描述符 FD打开且指向一个终端则为真。

[-u FILE ]如果 FILE存在且设置了SUID(set user ID)则为真。

[-w FILE ]如果 FILE如果 FILE存在且是可写的则为真。

[-x FILE ]如果 FILE存在且是可执行的则为真。

[-O FILE ]如果 FILE存在且属有效用户ID则为真。

[-G FILE ]如果 FILE存在且属有效用户组则为真。

[-L FILE ]如果 FILE存在且是一个符号连接则为真。

[-N FILE ]如果 FILE存在 and has been mod如果ied since it was last read则为真。

[-S FILE ]如果 FILE存在且是一个套接字则为真。

[ FILE1-nt FILE2 ]如果 FILE1 has beewww.028x.cn#hanged more recently than FILE2, or如果 FILE1 exists and FILE2 does not则为真。

[ FILE1-ot FILE2 ]如果 FILE1比 FILE2要老,或者 FILE2存在且 FILE1不存在则为真。

[ FILE1-ef FILE2 ]如果 FILE1和 FILE2指向相同的设备和节点号则为真。

[-o OPTIONNAME ]如果 shell选项“OPTIONNAME”开启则为真。

[-z STRING ]“STRING”的长度为零则为真。

[-n STRING ] or [ STRING ]“STRING”的长度为非零 non-zero则为真。

[ STRING1== STRING2 ]如果2个字符串相同。“=” may be used instead of“==” for strict POSIX compliance则为真。

[ STRING1!= STRING2 ]如果字符串不相等则为真。

阅读剩余
THE END