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类操作系统,并且使用人数还在迅猛增长。

阅读剩余
THE END