结构化命令if-then-else

1、使用if-else语句命令

#if-else是最基本的结构化语句命令,if-else基本语法格式如下
if [command]
then
[commands]
fi
这是结构化命令中最基本语法的基本形式,当然,它还有另一种语法形式:
if [command];then
[commands]
fi


上述讲述了if-else的基本语法,那么具体该如何使用它呢?
这里举个简单的例子来解释此概念:
首先,新建shell脚本,内容如下:

#!/bin/bash                      #shell脚本的基本语法形式
#Testing the if statement        #测试if语句
if pwd                           #如果执行“pwd”命令,返回的状态码为0(执行成功)
else echo “It a work!”           #那么使用echo命令输出“It a work”语句提示执行成功
fi ;                             #语法基本格式fi结尾


以上就是test1的语法简单书写形式,在我们给予此文件x(执行权限)后:chmod u+x test1,我们便可使用
./test1来执行此脚本,会得到如下结果
$./test1
/home/test
It a work!
shell执行了if行中的pwd命令,由于退出状态码为0(执行成功),所以会继续执行then部分的echo语句,并输出对应结果
 

以上是基本的if-then语句,接下来继续深入if-then-else语句

在if-else语句中,无论执行成功与否,我们都只有一种选择,而如果执行if后的语句返回的是非0状态码,我们可以继续使用else执行下一条语句,if-then-else语法格式如下:

if [command]
then
[commands]
else
[commands]


这个语法格式也非常简单,因为在结构化命令中if-then-else语句是基础语句,接下来举例语句的正确用法,以便我们更好的了解结构化命令

$vim test2
#!/bin/bash
#Testing the else section
testuser=NoSuchuser
if grep $testuser /etc/passwd
then
echo “The bash files for user $testuser are:”
ls -a /home$testuser/ .b*
echo
else
echo “The user $testuser does not exots on this system”
echo
fi


这样我们的else脚本也完成了,接下来给到x权限尝试执行

$chmod u+x test2
$./test2


The user NoSuchUesr does not exit on this system.


这样是不是十分友好呢?跟if-then语句一样,then部分可以包含多条语句,else也是一样支持多条命令。

2 test命令以及复合条件测试

文件比较:今天带大家来看shell中最为强大、也是用的最多的比较形式命令,它允许你测试Linux文件系统上文件和目录的状态,如下

-d file                         #检查文件file是否存在并为一个目录
-e file                         #检查文件file是否存在
-f file                          #检查文件file是否存在并为一个文件
-r file                          #检查文件file是否存在并可读
-w file                        #检查文件是否存在并可写
-s file                         #检查文件是否存在并非空
-x file                         #检查文件是否存在并可执行
-O file                        #检查文件是否存在并为当前用户属有
-G file                        #检查文件是否存在并且默认组与当前用户相同
file1 -nt file2              #检查文件file1是否比file2新
file1 -ot file2              #检查文件file1是否比file2旧

以上就是shell编程中最为常用来测试文件属性以及文件比较的命令语法了,那么它具体该如何使用?接下来让我们一起看看:

ex:检查文件
-e用于比较可用于文件和目录,要确定指定对象为文件,必须使用-f
例如下图代码,使用了-f与布尔运算的AND形式,先检查test3是否是一个文件,再通过-x检查这个文件是否可执行,检查成功通过则输出“This is a file and it’s can execute”
 

输出结果如上 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值