Shell脚本 if语句

条件测试:

$? 返回码

判断命令或者脚本是否执行成功(最近的一条)

0 true 为真就是成功 成立

非0 false 失败或者异常

test命令 可以进行条件测试 然后根据的是返回值来判断条件是否成立。

-e 测试目录或者文件是否存在 exist

-d 测试目录是否存在

-f 测试文件是否存在

-r 测试当前用户是否对文件/目录有读权限

-w 测试当前用户是否对文件/目录有写权限

-x 测试当前用户是否对文件/目录有执行权限

整数比较符(以下操作符只能用于整数之间比较)

-eq 等于 == 既可以比较整数,也可以比较字符串

-ne 不等于 !=

-gt 大于 >

-lt 小于 <

-ge 大于等于 >=

-le 小于等于 <=

比较符的第二种

第三种格式:

\[ ]可以使用更高级的模式,可以使用正则表达式,而且,在双括号当中,使用字符串的时候可以不加引号。

第四种:

(( )) 运算符

逻辑与和逻辑或

与 && 条件都满足才成立 -a

或 || 有一个条件满足就成立 -o

if'语句:

单分支结构

if 后面是条件测试语句

then 命令序列,只有条件测试语句成立,才会执行then的命令模块

fi结束语句

双分支结构

else 命令序列,只有条件测试语句不成立,才会执行else的命令模块

条件满足执行then,不满足执行else,执行完毕,语句结束。

多分支结构

if

then

命令序列

elif

then

命令序列

elif

then

命令序列

else

命令学历

fi

&> /dev/null

把冗余信息传送到黑洞文件

case语句相当于多分支结构

模式1)变量值 in

命令序列

;;作为结尾

模式2)

命令序列

;;作为结尾

.........

*)相当于else

esac作为结尾

相关推荐
GeW10 小时前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx12 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位14 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
骑着蜗牛撵大象32715 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
..Dauntless..15 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
QMCY_jason16 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特16 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
あ-16 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu16 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip
老秦包你会16 小时前
Linux第十课---------Linux信号
linux