Bash中if语句的使用

1、if-then结构

使用方法:

if command

then

command       #次区域可以是多个命令行

fi

2、if-then-else

if command

then

commands

else

commands

fi

else部分同then一样,可以使用多命令行,同时,else中还可以嵌套if-then-fi子模块

else的另一种写法,使用elif,elif-then可以多次使用来进行条件判断

if  command1

then

commands

elif  command2

then

more commands

[

elif  command

then

more commands

elif  command

then

more commands

]

fi

3、test判断

判断条件在if模块中处于中括号[]当中

数字类型判断

-eq ==

-ge >=

-gt >

-le <=

-lt <

-ne !=

 

字符串比较

=,!=,<,>,-n 长度大于0的判断,-z 长度为0的判断

其中大于小于号的使用需要使用\进行转义

 

4、文件比较

-d 文件是否存在并且是文件夹

-e 是否存在

-f 是否存在并是文件

-r 是否存在并可读

-s 是否存在并非空

-w 是否存在并可写

-x 是否存在并可执行

-O 是否存在并属于当前用户

-G 是否存在并默认组与当前用户相同

file1 -nt file2 文件1新于文件2

file1 -ot file2 文件1旧于文件2

也支持 ++,--,!,~(按位非),**(幂),<<,>>, &,|,&&,||运算

 5、case语句

case variable in

pattern1 | pattern2) commands1;;

pattern3) commands2;;

*) default commands;;

 

esac

5、命令行参数

  $#: 命令传入参数的个数

  ${!#}: 最后的参数值,没有参数时,显示脚本名,置于变量中显示0 

  last=$#     $last显示为0

  $*: 参数为单值

  $@: 参数为多值

  shift: 参数左移 ,shift 2 将第三个参数作为第一个

Bash脚本中,`if`语句是一种非常重要的控制结构,用于基于特定条件是否成立来进行分支选择。通过这种机制可以使程序根据不同的情况执行相应的代码段。以下是关于Bash `if`语句的基本介绍及其常见形式。 ### 单一条件判断 最简单的`if`语句仅包含一个条件,并且如果该条件为真,则执行一组命令: ```bash #!/bin/bash variable="hello" if [ "$variable" == "hello" ]; then echo "Variable is hello." fi ``` 在这个例子中,只有当变量`$variable`等于字符串“hello”时才会输出信息。 ### 双重条件(带else) 当我们希望有一个替代方案,在原始条件下未满足时可以采取行动的时候,就可以使用`else`部分: ```bash #!/bin/bash number=7 if [ $number -gt 10 ]; then echo "Number greater than ten." else echo "Number not greater than ten." fi ``` 这里展示了如何检查数字大小的情况:若 `$number` 大于 10 则显示一条消息;否则就展示另一条消息。 ### 多个条件(elif链) 有时候我们需要更多的可能性来做更复杂的决策树分析。这时可以用到`elif`关键字添加额外的条件测试,直到所有提供的条件都被验证完为止: ```bash #!/bin/bash score=85 if [ $score -ge 90 ]; then grade='A' elif [ $score -ge 80 ]; then grade='B' elif [ $score -ge 70 ]; then grade='C' elif [ $score -ge 60 ]; then grade='D' else grade='F' fi echo "Your score corresponds to a ${grade}." ``` 上面的例子按照分数范围给定了成绩等级从'A'至'F'。 ### 结合逻辑运算符 你可以结合多种条件一起工作,比如用`&&`(AND)、`||`(OR),以及`!`(NOT): ```bash #!/bin/bash age=21 hasLicense=true if (( age >= 18 && hasLicense )); then # 注意这里的双括号是算术上下文,单等号赋值,双等号比较。 echo "Eligible for driving!" fi ``` 此示例演示了同时考虑年龄和是否有驾照两个因素来确定某人能否合法驾驶车辆。 总之,掌握好这些语法细节将帮助你在编写Bash脚本过程中做出正确的路径选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值