shell if(shell脚本中 if 判断时候-s是什么意思)
大家好,今天我将为大家揭秘shell if和shell脚本中 if 判断时候-s是什么意思的奥秘,希望我的分享能给你带来新的启发和知识。
shell脚本中的if中多条件语句如何写。
可以使用 if-elif-else语法来写多条件语句。
1、首先要理解if-else的基本用法,if条件+then操作+else操作+fi闭合,书写方法如下:
2、if-elif-else语法的具体格式--if单条件多分支,书写方法如下:
3、实例- if单条件多分支,这个实例的输出结果是:a小于 b。
4、实例- if多条件多分支,这个实例输出结果是:a等于 b,或 a小于10。
扩展资料
1、shell语法注意事项
shell的if语法和C语言等高级语言非常相似,唯一需要注意的地方就是shell的if语句对空格方面的要求比较严格,如果在需要空格的地方没有打上空格,就会报错。
如if [ 1== 1 ];then echo"abc";fi中如果在少写了if后面的空格就报错:
2、 shell语法中[[ ]]和[ ]的主要区别
(1) [ ]实际上是bash中 test命令的简写。即所有的 [ expr ]等于 test expr。
对 test命令来说,用-eq要进行数字比较,而你此时传入字符串,就报错了。
(2) [[ ]]是内置在shell中的一个命令,它比test强大的多。支持字符串的模式匹配(使用=~操作符时甚至支持shell的正则表达式)。逻辑组合可以不使用test的-a,-o而使用&&||。
shell if 参数
1) bash
a=3; b=2; c=4
if(( a> b))&&(( a< c))
或者
if [[$a>$b ]]&& [[$a<$c ]]
或者
if [$a-gt$b-a$a-lt$c ]
2) a=3; b=2; c=4
if(( a> b))||(( a< c))
或者
if [[$a>$b ]]|| [[$a<$c ]]
或者
if [$a-gt$b-o$a-lt$c ]
3)-o= or,-a= and,但我一向只用||或者&&
4)可用,但是要两个独立的 [ ], [[ ]]或(())
看 1)
5)-ne比较数字(numberic);!=比较字符(string),但后者拿来
比较数字也可,只是不是标准用法
-lt是等同<,但<只能在 shell的数值操作符(())或
者逻缉操作符 [[ ]]才可使用,-lt,-eq,-gt,-ge
-le,这些是 test,就是 [ ]这个内建命令使用的条件操
作符,数字用,=,!=字符用,==这个该是 [[ ]]用的,
可用来比对正规表示式,但用在 [ ]也可,只是不太正统用法
这可以吗?呵呵
shell脚本中 if 判断时候-s是什么意思
[-s FILE ]如果 FILE存在且大小不为0则为真。
其它说明:
[-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 been changed 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”的长度为零则为真。字符串为空即NULL时为真。
[-n STRING ] or [ STRING ]“STRING”的长度为非零 non-zero则为真。加-n与不加-n结果相同。
在linux下shell脚本中if中用到or怎么写
1、没有参数的函数func(){echo"hello world"}func。
2、有参数的写法,其中$1,$2就是参数。func(){echo"hello world"echo"arg1"$1;echo"arg2"$2}func" a1"" a2"。
3、不定参数的函数可以这样写,参数的个数可以通过$#得到。
4、调用其他文件中的函数:注意两个点之间有空格。#test2.sh的内容和test1.sh完全相同。../test2.shfunc“abc”“a”。
5、两个函数名字相同,后面的函数会把前面的函数覆盖掉。../test2.shfunc(){echo"test.sh:func"$1}func"abc""a"。
6、如果函数是有返回值的。可以通过$?来获取返回值fun(){return `expr$1+$2`}fun 1 2echo$?。
关于shell if,shell脚本中 if 判断时候-s是什么意思的介绍到此结束,希望对大家有所帮助。