Linux之shell编程:if语法「建议收藏」

Linux之shell编程:if语法「建议收藏」1、if的基本格式if[参数];then符合该条件执行的语句elif[参数];then符合该条件执行的语句else符合该条件执行的语句fi2、参数内容单文件判断????????????[-afile]如果file存在则为真[-bfile]如果file存在且是一个块特殊文件则为真[-cfile]如果file存在且是一个字特殊文件则为真[-dfile]如…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、if的基本格式

if [ 参数 ];then
符合该条件执行的语句
elif [ 参数 ];then
符合该条件执行的语句
else
符合该条件执行的语句
fi

2、参数内容

单文件判断???

[-a file]  如果file存在则为真
[-b file]  如果file存在且是一个块特殊文件则为真 
[-c file]  如果file存在且是一个字特殊文件则为真
[-d file]  如果file文件存在且是一个目录则为真
-d前的!是逻辑非 
例: if [ ! -d $lcd_path/$par_date ] 
表示后面的那个目录不存在,则执行后面的then操作 

[-e file]  如果file文件存在则为真 
[-f file]  如果file存在且是一个普通文件则为真
[-g file]  如果file存在且已经设置了SGID则为真(SUID 是 Set User ID, SGID 是 Set Group ID的意思) 
[-h file]  如果file存在且是一个符号连接则为真 
[-k file]  如果file存在且已经设置粘制位则为真 

当一个目录被设置为"粘制位"(用chmod a+t),则该目录下的文件只能由 
一、超级管理员删除 
二、该目录的所有者删除 
三、该文件的所有者删除 
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。 
例: #ls -dl /tmp 
drwxrwxrwt 4 root    root  ......... 
注意other位置的t,这便是粘连位。

[-p file]  如果file存在且是一个名字管道(F如果O)则为真 
[-r file]  如果file存在且是可读的则为真 
[-s file]  如果file存在且大小不为0则为真 
[-t FD]    如果文件描述符FD打开且指向一个终端则为真
[-u file]  如果file存在且设置了SUID(set userID)则为真
[-w 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或者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则为真
[sting1==string2]         如果2个字符串相同则为真。
“=”may be used instead of “==”for strict posix compliance
[string1!=string2]        如果字符串不相等则为真
[string1<string2]
如果“string1”sorts before“string2”lexicographically in the current locale则为真 
[arg1 OP arg2]
“OP”is one of –eq,-ne,-lt,-le,-gt or –ge.These arithmetic binary oprators 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“agr2”,respectively.“arg1”and “agr2”are integers. 

3、注意事项

if [ x${var} = xAAA ]  x是为防止var为空时出现语法错误
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170868.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PyCharm许可证过期解决方案

    PyCharm许可证过期解决方案PyCharm许可证过期解决方案1.选择enterlicense2.选择licenseserver3.输入http://idea.imsxm.com4.点击ok

    2022年8月26日
    15
  • 令人比较失落的IT圈子-关于华为裁员

    令人比较失落的IT圈子-关于华为裁员早在几年前就有人说过程序员在35岁以后如果不做管理就很难混了,如今由于近日的华为事件被炒得沸沸扬扬,显然让这多年前人们的猜测变成了现实,我今年也正好到了这个该“退休”的年龄,所以就想趁机悔恨一番。首先,澄清的一点就是,我并无意诋毁这个IT行业,我只是希望大家可以更加清除的认清这个行业。       什么叫做管理,在程序员的思维里,做管理其实很简单,就是从写代码到不写代码,哪怕是写PPT,只要不写

    2022年7月25日
    33
  • J2EE架构师之路[转]

    J2EE架构师之路[转]
    不经意的回首,工作进入第五个年头了,发现走过了从Java程序员到J2EE架构师的历程。
    发现电脑上安装了各种各样的J2EE工具:JBuilder,WSAD,Eclipse,Rose,Together,Weblogic,Jtest,Optimizator,Mysql…
    发现电脑上保存了各种各样的OpenSource项目:Tomcat,JBoss,Ant,Hibernate,Spring,ibatis,Struts,Log4j,Lucene,MovableTyp

    2022年6月26日
    27
  • 移动端调试——eruda

    移动端调试——eruda1 下载 npminstaller 插入 ifdefH5 H5 调试工具 if process env NODE ENV dev process env NODE ENV development consteruda require eruda eruda init 初始化 endif

    2025年12月5日
    2
  • Java并发编程:线程池的使用

    Java并发编程:线程池的使用

    2022年2月21日
    40
  • autocad二次开发资料总结

    autocad二次开发资料总结autocad二次开发AutoCAD(AutoComputerAidedDesign)是美国Autodesk公司研制开发的一款计算机辅助设计软件,它不是一款简单的绘图工具,而是一个复杂的计算机辅助设计系统。我们可以根据他灵活的开放性对其进行二次开发定制,让它更加适用于某一具体的设计领域。中文名AutoCAD二次开发外文名AutoCADDevelopmentSyst

    2025年8月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号