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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytest的assert_java单元测试断言

    pytest的assert_java单元测试断言前言断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试failed

    2022年7月30日
    5
  • 算法:凸多边形最优三角剖分

    算法:凸多边形最优三角剖分1 问题相关定义 1 凸多边形的三角剖分 将凸多边形分割成互不相交的三角形的弦的集合 T 2 最优剖分 给定凸多边形 P 以及定义在由多边形的边和弦组成的三角形上的权函数 w 要求确定该凸多边形的三角剖分 使得该三角剖分中诸三角形上权之和为最小 凸多边形三角剖分如下图所示 2 最优子结构性质 若凸 n 1 边形 P V0 V1 Vn 的最优三角剖分 T 包含三角形

    2025年6月18日
    4
  • 谷歌地图 离线地图_地图谷歌高清手机版

    谷歌地图 离线地图_地图谷歌高清手机版离线地图解决方案,除了买地图数据,使用专业的ArcGIS来做外,也可以使用GMap.Net来做。关于GMap的开发教程,可以看我以前的文章:基于GMap.Net的地图解决方案使用了GMap一年了,也有了一些积累,开发了一个可以下载ArcGIS、百度、谷歌、高德、腾讯SOSO、天地图、Here等地图的地图下载器。百度和google地图加载显示如下:百度普通地图:百度混合地图:…

    2026年2月1日
    5
  • nslookup命令的使用方法_怎么退出nslookup命令

    nslookup命令的使用方法_怎么退出nslookup命令nslookup是一款查询DNS(Internetdomainnameserver)的程序。用来网络管理工具,帮助诊断和解决DNS相关的问题。除此之外,也有其他DNS工具,如dig命令和host命令。nslookup会将DNS查询发送到指定的DNS服务器、接收DNS回复,并显示结果1、查找A记录2、查找MX记录3、查找NS记录4、查找CNAME记录5、查找SOA记录6、查找RDNSorPRT记录直接输入IP地…

    2022年10月19日
    3
  • python中sqrt函数用法_Python sqrt() 函数

    python中sqrt函数用法_Python sqrt() 函数内容简介:sqrt()方法返回数字x的平方根。描述sqrt()方法返回数字x的平方根。语法以下是sqrt()方法的语法:importmathmath.sqrt(x)注意:sqrt()是不能直接访问的,需要导入math模块,通过静态对象调用该方法。参数x–数值表达式。返回值返回数字x的平方根。实例以下展示了使用sqrt()方法的实例:#!/usr/bin/pythonim…

    2022年5月30日
    52
  • PSCU选择Qlik支持其完善的服务交付战略「建议收藏」

    PSCU选择Qlik支持其完善的服务交付战略

    2022年4月2日
    82

发表回复

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

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