shell脚本条件语句

条件测试操作和条件测试语句:

$?:条件判断,失败或者成功,真或者假,true false

shell脚本中:0为真,true 执行成功;其他所有的非0 都是假, false,执行失败

条件测试的命令:

格式一:

test 操作符 文件名

操作符:

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

-d 只能测试是否为目录

-f 只能测试是否为文件

-r 测试当前用户是否有读权限

-w 测试当前用户是否有写权限

-x 测试当前用户是否有执行权限

实验:

test -e passwd.txt

echo $?

test -e passwd.tx

echo $?

text -d passwd.txt

echo $?

test -d kgc

echo $?

test -r kgc/

echo $?

test -w kgc/

echo $?

test -x kgc/

echo $?

test 也可以进行数值和字符串比较

字符串比较,只能比较的是内容是否一致

常用的比较符:

第一种写法:

注意:一下比较符只能用于比较整数:

-eq 等于

-ne 不等于

-gt 大于

-lt 小于

-le 小于等于

-ge 大于等于

第二种写法:

== != > < >= <=

第二种格式:

【条件表达式】

例如【 3 -gt 2 】

第三种方式:强烈推荐的方式

[[条件表达式]] 双中括号的写法比单中括号的功能更加强大,可以避免歧义的出现,而且双中括号可以支持正则表达式

逻辑测试的表达语句:

-a 或 && 逻辑且 表示前后的条件都要成立

-o 或 || 逻辑或,表示前后成立一个即可

! 逻辑否,表示取反

在单括号中 字母与字符都可以使用

但是在双括号中只能用字符,但是字母无法使用,会报错

例如 [ $a -lt 3 -a $a -eq 5] 或者

if语句:

单分支结构:

if 条件语句

then 命令序列

fi

例如:

if [ 3 -gt 2 ]

then echo "ok"

fi

双分支结构:

if 条件语句

then 命令序列

else 命令序列

fi

实验:

有三个IP地址,已位置变量的方式传参

ping通的打印可以通,保存到 /opt/hosts.txt

不通的要打印ping不通

image-20231023152427569

多分支结构:

if 条件语句

条件判断的CASE语句

case 变量值 in

模式1 )

命令序列15

;;

模式2)

命令序列2

;;

*)

;;

命令序列

esac

she11脚本日测: 1、写出shell脚本的执行方式(不少于三种)

bash sh ./(赋权执行) source

2、从指定的文件读取数据,并给指定zhangsan设置密码

vim passwd.txt passwd --stdin dn < passwd.txt

3、变量有几种类型,自定义变量的规范

变量的类型:int:整数 string:字符串 truefalse:布尔类型 浮点:1.23

自定义的变量名:不要使用系统命令作为变量名

不要使用中文

不能使用特殊符合开头 ,只有_可以做开头

不要使用数字开头

4、"" ' ' `` 三个符号的特点

"" ' ' 赋值变量时没有区别

打印变量时 "" 不影响变量的值打印结果。 ' '只会输出变量名的字符串

``执行里面的命令,把命令的执行结果赋值给变量

5、$ * 和$@的区别是什么,$?的特点

$*:加了引号当做整体处理 不加和$@一样,一个个处理

$@:加不加引号,都当成一个一个处理

$?:上一次命令或者脚本执行之后的状态码,所有非0都是异常 只有0才表示执行成功

6、怎么定义全局变量

export

/etc/profile 可以定义全局变量

7、写出计算14+162*5/2+3的shell脚本计算格式,并赋值给变量num。

num=$(awk 'BEGIN {PRINT 14+162*5/2+3}')

或者num=$((14+162*5/2+3))

或者let num=14+162*5/2+3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆墨宁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值