前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux之shell编程:if语法「建议收藏」

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

作者头像
全栈程序员站长
发布2022-09-23 21:18:26
6650
发布2022-09-23 21:18:26
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

1、if的基本格式

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

2、参数内容
代码语言:javascript
复制
单文件判断👇👇👇

[-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、注意事项
代码语言:javascript
复制
if [ x${var} = xAAA ]  x是为防止var为空时出现语法错误

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、if的基本格式
  • 2、参数内容
  • 3、注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档