一、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 判断时候-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结果相同。
三、liunx 下的shell语句 if [ ! -d /$1/$2/$3/ ]是什么意思
if [!-d/$1/$2/$3 ]这是判断/$1/$2/$3这个文件是否是目录文件。
!在这里是取反的意思,意思:如果/$1/$2/$3不是目录的话符合条件。
$1$2$3分别是第一个参数,第二个参数,第三个参数
当然如果/$1/$2/$3不存在,自然也不是目录。也是符合条件的。
shell的特殊符号太多。这个还是得看书。
以含有!的特殊符号举例
!$$!!number!?!!这些都是,但还不止。
四、在Linux的系统Shell脚本中使用if语句的方法
Bourne Shell的 if语句和大部分编程语言一样-检测条件是否真实,如果条件为真,shell会执行这个 if语句指定的代码块,如果条件为假,shell就会跳过 if代码块,继续执行之后的代码。
if语句的语法:
代码如下:
if [判断条件 ]
then
command1
command2
……..
last_command
fi
Example:
#!/bin/bash
number=150
if [$number-eq 150 ]
then
echo"Number is 150"
fi
if-else语句:
除了标准的 if语句之外,我们还可以加入 else代码块来扩展 if语句。这么做的主要目的是:如果 if条件为真,执行 if语句里的代码块,如果 if条件为假,执行 else语句里的代码块。
语法:
代码如下:
if [判断条件 ]
then
command1
command2
……..
last_command
else
command1
command2
……..
last_command
fi
Example:
代码如下:
#!/bin/bash
number=150
if [$number-gt 250 ]
then
echo"Number is greater"
else
echo"Number is **aller"
fi
If..elif..else..fi语句(简写的 else if)
Bourne Shell的 if语句语法中,else语句里的代码块会在 if条件为假时执行。我们还可以将 if语句嵌套到一起,来实现多重条件的检测。我们可以使用 elif语句(else if的缩写)来构建多重条件的检测。
语法:
代码如下:
if [判断条件1 ]
then
command1
command2
……..
last_command
elif [判断条件2 ]
then
command1
command2
……..
last_command
else
command1
command2
……..
last_command
fi
Example:
代码如下:
#!/bin/bash
number=150
if [$number-gt 300 ]
then
echo"Number is greater"
elif [$number-lt 300 ]
then
echo"Number is Smaller"
else
echo"Number is equal to actual value"
fi
多重 if语句:
If和 else语句可以在一个 bash脚本里相互嵌套。关键词“fi”表示里层 if语句的结束,所有 if语句必须使用关键词“fi”来结束。
基本 if语句的嵌套语法:
代码如下:
if [判断条件1 ]
then
command1
command2
……..
last_command
else
if [判断条件2 ]
then
command1
command2
……..
last_command
else
command1
command2
……..
last_command
fi
fi
Example:
代码如下:
#!/bin/bash
number=150
if [$number-eq 150 ]
then
echo"Number is 150"
else
if [$number-gt 150 ]
then
echo"Number is greater"
else
echo"'Number is **aller"
fi
fi
非常感谢您的阅读!我们希望本文对于解决您关于[shell]shell中if语句的使用_shell if和shell脚本中 if 判断时候-s是什么意思的问题提供了一些有价值的信息。如果您还有其他疑问,我们将很乐意为您提供进一步的帮助。