linux if d?shell if 多条件
大家好,linux if d相信很多的网友都不是很明白,包括shell if 多条件也是一样,不过没有关系,接下来就来为大家分享关于linux if d和shell if 多条件的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
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 ]如果字符串不相等则为真。
Linux篇:shell脚本中if的“-e,-d,-f”
最近在学一段脚本中的if语句中出现了这么一句:
if [!-f"/usr/bin/svnserve" ]
一时没想起这个-f的意思,于是重新翻了之前的笔记,把相关的知识点总结如下:
-e filename如果 filename存在,则为真
-d filename如果 filename为目录,则为真
-f filename如果 filename为常规文件,则为真
-L filename如果 filename为符号链接,则为真
-r filename如果 filename可读,则为真
-w filename如果 filename可写,则为真
-x filename如果 filename可执行,则为真
-s filename如果文件长度不为0,则为真
-h filename如果文件是软链接,则为真
filename1-nt filename2如果 filename1比 filename2新,则为真。
filename1-ot filename2如果 filename1比 filename2旧,则为真。
-eq等于
-ne不等于
-gt大于
-ge大于等于
-lt小于
-le小于等于
04 字符串变量表达式
if [$a=$b ] 如果string1等于string2,则为真,字符串允许使用赋值号做等号
if [$string1!= $string2 ] 如果string1不等于string2,则为真
if [-n$string ] 如果string非空(非0),返回0(true)
if [-z$string ] 如果string为空,则为真
if [$sting ] 如果string非空,返回0(和-n类似)
逻辑非! 条件表达式的相反
if [!表达式 ]
if [!-d$num ] 如果不存在目录$num
逻辑与–a 条件表达式的并列
if [表达式1 –a 表达式2 ]
逻辑或-o 条件表达式的或
if [表达式1 –o表达式2 ]
linux shell 指令 诸如-d, -f, -e之类的判断表达式
文件比较运算符-e filename
如果 filename存在,则为真 [-e/var/log/syslog ]-d filename
如果 filename为目录,则为真 [-d/tmp/mydir ]-f filename
如果 filename为常规文件,则为真 [-f/usr/bin/grep ]-L filename
如果 filename为符号链接,则为真 [-L/usr/bin/grep ]-r filename
如果 filename可读,则为真 [-r/var/log/syslog ]-w filename
如果 filename可写,则为真 [-w/var/mytmp.txt ]-x filename
如果 filename可执行,则为真 [-L/usr/bin/grep ]filename1-nt filename2
如果 filename1比 filename2新,则为真 [/tmp/install/etc/services-nt/etc/services ]filename1-ot filename2
如果 filename1比 filename2旧,则为真 [/boot/bzImage-ot arch/i386
/boot/bzImage ]字符串比较运算符(请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string如果 string长度为零,则为真 [-z"$myvar" ]-n string如果 string长度非零,则为真 [-n"$myvar" ]
string1= string2如果 string1与 string2相同,则为真 ["$myvar"="one two three"]
string1!= string2如果 string1与 string2不同,则为真 ["$myvar"!="one two three" ]
算术比较运算符num1-eq num2等于 [ 3-eq$mynum ]
num1-ne num2不等于 [ 3-ne$mynum ]num1-lt num2小于 [ 3-lt$mynum ]
num1-le num2小于或等于 [ 3-le$mynum ]num1-gt num2大于 [ 3-gt$mynum ]
num1-ge num2大于或等于 [ 3-ge$mynum ]
拓展资料:
Linux操作系统
是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991年的 [Linux桌面] 10月5日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。