学习linux的第五十三天(shell脚本)

本文深入探讨了Shell脚本中的变量定义与使用规范,包括自定义变量与系统默认变量的特点,以及变量命名规则。此外,还详细讲解了Shell脚本中的三种逻辑判断格式,即if...then...fi、if...then...else...fi和if...then...elif...then...else...fi,并介绍了逻辑判断表达式的应用,以及如何判断文件和目录的存在状态。
摘要由CSDN通过智能技术生成

shell脚本中的变量

在这里插入图片描述
变量
定义:在程序运行过程中可以改变的量
shell脚本中,变量有两种,一种是用户自定义变量,另外一种是系统默认变量(path)
变量的格式 变量名=变量值
your_name =“zhangsan”
注意:变量名和等号之间不能有空格
变量名的命名必须遵循以下规则:
①首个字符必须为字母(a-z或者A-Z)
②中间不能有空格,可以使用下划线(_)
③不能使用标点符号
④不能使用bash里面的关键字(比如Linux系统中的命令cp,ls,rm,mv等)

shell脚本中的逻辑判断

在这里插入图片描述
格式1:if 条件 ; then 语句; fi
#!/bin/bash
a=5
if [ $a -gt 3 ]
then
echo ok
fi
其中方括号内开头结尾必须要有空格
-gt表示大于
在命令行中可以写成:a=5;if [ $a -gt 3 ];then echo ok;fi
格式2:if 条件; then 语句; else 语句; fi
#!/bin/bash
a=4
if [ $a -lt 3 ]
then
echo yes
else
echo no
fi
-lt表示小于
其中else表示不符合条件时打印的语句
格式3:if 条件1; then 语句1;elif 条件2; then 语句2; elif条件3;then 语句3;else 语句3; fi
#!/bin/bash
a=5
if [ $a -eq 3 ]
then
echo “the num = 3”
elif [ $a -gt 6 ]
then
echo “the num > 6”
elif [ $a -lt 4 ]
then
echo “the num < 4”
else
echo “the num = 5”
fi
意思为符合条件1则执行语句1,不符合则再判断是否符合条件2,再不符合则判断条件3,都不符合则执行语句else
其中eq表示等于
elif条件可以写多个
逻辑判断表达式:if [ $a -gt $b ] if [ $a -lt 5 ] if [ b − e q 10 ] 也 可 以 使 用 数 学 形 式 i f ( ( b -eq 10 ] 也可以使用数学形式 if (( beq10]使if((a> b ) ) i f ( ( b)) if(( b))if((a<5)) if(($b==10))
在这里插入图片描述
if语句中也可以使用 && ||结合多个条件
表示并且,同时满足:if [ $a -gt 5 ] && [ $a -lt 10 ]
表示或者满足其中一个: if [ $b -gt 5 ] || [ $b -lt 3 ]

if判断文件,目标属性

在这里插入图片描述
在这里插入图片描述
判断文件是否存在:
#!/bin/bash
f="/tmp/liuzq"
if [ -f $f ]
then
echo $f exist
else
touch $f
fi
判断文件是否存在,存在退出,不存在则创建该文件

判断目录是否存在:
#!/bin/bash
f="/tmp/liuzq"
if [ -d $f ]
then
echo $f exist
else
touch $f
fi
有时候可以简写为下面的代码:
#!/bin/bash
f="/tmp/test"
[ -f $f ] && rm -f $f

判断是否是文件,是的话删除该文件。
[ -f $f ] || rm -f $f 它表示文件不存在则执行rm语句 等同于[ ! -f $f ] && rm -f $f
它与下面的代码是一样的意思:
#!/bin/bash
f="/tmp/test"
if [ -f $f ]
then
rm -f $f
fi
判断文件或者目录是否存在:
#!/bin/bash
f="/tmp/test"
if [ -e $f ]
then
touch $f
fi
即使已经存在了也会去touch该文件但会更改文件/目录的是时间

判断文件是否可读
#!/bin/bash
f="/tmp/test"
if [ -r f ] t h e n e c h o " f ] then echo " f]thenecho"f readable"
fi

if的特殊用法

在这里插入图片描述
使用命令来做判断条件:if grep -wq zhaoyujie /etc/passwd;then echo zhaoyujie exist;fi
1.判断zhaoyujie用户是否存在,存在则输出zhaoyujie exist
2.其中grep -wq 表示选取(-w)过滤完全符合的一个词(-q)不打印
使用! 在参数前 表示取反 [ ! -e file ] 表示文件不存在
if (($a<1)); then …等同于 if [ $a -lt 1 ]; then…
中括号中不能使用<,>,==,!=,>=,<=这样的符号

case判断

在这里插入图片描述
在case程序中,可以在条件中使用|,表示或的意思, 比如
2|3)

command   

;;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值