shell 编程练习

4 篇文章 0 订阅

在这里插入图片描述

#!/bin/bash

echo "显示etc目录下所有以大写p和小写p开头的文件或目录本身:"
ls -d /etc/[pP]*
echo ""
echo "显示/var目录下的所有文件或目录本身,并显示结果中的小写字母转换成大写字母:"
ls -d /var/* | tr 'a-z' 'A-Z' 

echo ""
echo "创建临时文件/tmp/mylife.xxxx:"
mktemp -d /tmp/myfile.XXXX

结果:在这里插入图片描述2.

#!/bin/bash
#
id user1 &> /dev/null || useradd user1
id user3 &> /dev/null || useradd user3

user1_id=$(id -u user1)
user3_id=$(id -u user3)
idsum=$[$user1_id+$user3_id]
echo ${idsum}

条件测试:

判断某需求是否满足,需要右测试机来实现;
如何编写测试表达式实现所需的测试:

(1)执行命令,并利用命令状态返回值来判断;
0 : 成功
1-255: 失败

(2)测试表达式
test expression
[ expression ] (注意expression两端必须空格)
[[ expression ]] (注意expression两端必须空格)

bash的测试类型:

数值测试:
字符串测试:
文件测试:

1.数值测试: 数值比较
-eq: 是否等于
在这里插入图片描述
-ne:是否不等于
在这里插入图片描述
-gt: 是否大于:
-ge:是否大于等于:
-lt:是否小于:
-le:是否小于等于:

2.字符串测试:
==:是否等于;
>;是否大于;
<:是否小于;
!=:是否不等于;
=~: 左侧字符串是否能够被右侧的pattern所匹配;
-z “string”: 判断指定的字符串是否为空,空则真,不空则假;
-n “string”: 判断指定的字符串是否为空,不空则真,空则假;
在这里插入图片描述
空引用需要加引号:
在这里插入图片描述
在这里插入图片描述
注意到上面"[]"时是不准确的,相比较的时候尽量使用""[[]]"

字符串要加引号加以引用
在这里插入图片描述
=~练习:
在这里插入图片描述
3.文件测试

存在性测试:
-a FILE(文件路径)
-e FILE(文件路径)
文件的存在性测试,存在则为真,不存在则为假

存在即类型测试:
-b FILE:是否存在并且为块设备文件;
-c FILE: 是否存在并且为字符设备文件;
-d FILE: 是否存在并且为目录文件;
-f FILE:是否存在并且为普通文件;
-h或-l FILE:是否存在并且为符号链接文件;
-p FILE: 是否存在并且为命名管道文件;
-S: FILE: 是否存在并且为套接字文件;

文件权限测试:
-r FILE : 是否存在并且对当前用户可读
-w FILE: 是否存在并且对当前用户可写
-x: FILE:是否存在并且对当前用户可执行

特殊权限测试:
-u FILE :是否存在并且 拥有suid权限
-g FILE : 是否存在并且拥有sgid权限
-k FILE : 是否存在并且拥有sticky权限

-e
-a
在这里插入图片描述
-b
在这里插入图片描述

脚本的状态返回值:

默认是脚本中执行的最后一条命令的状态返回值;
自定义状态退出状态码;
exit [n]: n为自己指定的状态码;
注意: shell进程遇到exit时,即会终止,因此,整个脚本执行即为结束.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值