linuxsh脚本if,Shell脚本IF条件判断和判断条件总结前⾔: ⽆论什么编程语⾔都离不开条件判断。SHELL也不例外。
复制代码 代码如下:
if list then
do something here
elif list then
do another thing here
else
do something else here
fi
EX1:
复制代码 代码如下:
#!/bin/sh
SYSTEM=`uname -s` #获取操作系统类型,我本地是linux
if [ $SYSTEM = "Linux" ] ; then #如果是linux的话打印linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi #ifend
基本上和其他脚本语⾔⼀样。没有太⼤区别。不过值得注意的是。[]⾥⾯的条件判断。
1、字符串判断
str1 = str2 当两个串有相同内容、长度时为真
str1 != str2
2、数字的判断
int1 -eq int2 两数相等为真
int1 -ne int2 两数不等为真
int1 -gt int2 int1⼤于int2为真
int1 -ge int2 int1⼤于等于int2为真
int1 -lt int2 int1⼩于int2为真
int1 -le int2 int1⼩于等于int2为真
3、⽂件的判断
-r file ⽤户可读为真
-w file ⽤户可写为真
-x file ⽤户可执⾏为真
-f file ⽂件为正规⽂件为真
-d file ⽂件为⽬录为真
-c file ⽂件为字符特殊⽂件为真
-b file ⽂件为块特殊⽂件为真
-s file ⽂件⼤⼩⾮0时为真
-t file 当⽂件描述符(默认为1)指定的设备为终端时为真
4、复杂逻辑判断
-
a 与
-o 或
shell最简单脚本! ⾮
结尾
语法虽然简单,但是在SHELL⾥使⽤的时候,他的功能变得强⼤了。
=====================================================================
附 表:
[ -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 存在且已经设OdRhbsz置了粘制位则为真。
[ -p FILE ] 如果 FILE 存在且是⼀个名字管道(F如果O)则为真。
[ -r FILE ] 如果 FILE 存在且是可读的则为真。
[ -s FILE ] 如果 FILE 存在且⼤⼩不为0则为真。
[ -t FD ] 如果⽂件描述符 FD 打开且指向⼀个终端则为真。
[ -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。
[ -w FILEwww.cppcns ] 如果 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 www.cppcnsFILE2 ] 如果 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” 的长度为零则为真。
[ -n STRING ] or [ STRING ] “STRING编程客栈” 的长度为⾮零 non-zero则为真。
[ STRING1 == STRING2 ] 如果2个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。
[ STRING1 != STRING2 ] 如果字符串不相等则为真。
[ STRING1 < STRING2 ] 如果 “STRING1” sorts before “STRING2” lexicographically in the current locale则为真。
[ STRING1 > STRING2 ] 如果 “STRING1” sorts after “STRING2” lexicographically in the current locale则为真。
[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively.“ARG1” and “ARG2” are integers.
本⽂标题: Shell脚本IF条件判断和判断条件总结
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论