Shell的条件测试语句

1.条件测试语句练习

1.1 编写一个 Shell脚本,程序执行时从键盘读入一个目录名,如果用户输入的目录不存在,则提示file does not exist;如果用户输入的不是目录则提示用户必须输入目录名;如果用户输入的是目录则显示这个目录下所有文件的信息。

[root@manage 20221225]# vim dirtory_exist.sh      编写脚本文件
#!/bin/bash
#########################
#File name:dirtory_exist.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-12-26 06:48:04
#Description:
#########################
read -p "please input dirtory name:" dirtory     键盘输入一个目录名
test ! -d $dirtory  && echo "This dirtory is not exist"    输入的目录名不存在时输出目录不存在
test -d $dirtory && echo `ls $dirtory `     输入的目录存在则列出目录下所有文件
[root@manage 20221225]# mkdir dirtory1      创建目录


测试:
[root@manage 20221225]# bash dirtory_exist.sh 
please input dirtory name:dirtory1
file1

1.2 写一个脚本,完成以下要求:让用户输入用户名。如果其UID为0,就显示此为管理员;否则,就显示其为普通用户。

[root@manage 20221225]# vim uid.sh 
#!/bin/bash
#########################
#File name:uid.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-12-26 07:09:12
#Description:
#########################
read -p "please input username:" username
result=`id -u $username`
[ $result -eq 0 ] && echo "user is root" && exit 0
echo "user is regular user"



测试:
[root@manage 20221225]# bash uid.sh 
please input username:root
user is root
[root@manage 20221225]# bash uid.sh 
please input username:gj
user is regular user

1.3 写一个脚本,给定一个用户,判断其UID与GID号码是否一样,如果一样,就显示此用户为“good guy";否则,就显示此用户为“bad guy”。

[root@manage 20221225]# vim uid_gid.sh
#!/bin/bash
#########################
#File name:uid_gid.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-12-26 07:31:02
#Description:
#########################
read -p "please input user:" user
uid=`id -u $user`
gid=`id -g $user`
[ $uid -eq $gid ] && echo "good guy" && exit 1
echo "bad guy"


修改用户组id
[root@manage 20221225]# groupmod -g 2000 jjj

测试:
[root@manage 20221225]# bash uid_gid.sh 
please input user:jjj
bad guy
[root@manage 20221225]# bash uid_gid.sh 
please input user:gj
good guy
1 .创建用户组 ——groupadd 命令
命令格式: groupadd [-r] 用户组名称
-g GID—— 指定新用户组的组标识号 (GID), 默认值是已有的最大的 GID 1
-r—— 建立一个系统组账号 , -g 不同时使用时 , 则分配一个 1 999 GID
示例:向系统中添加一个组 ID 1000, 组名为 group1 的新组。
2 .添加 / 删除组成员 ——gpasswd 命令
命令格式: gpasswd [ 选项 ] [ 用户 ] [ ]
只有 root 用户和组管理员才能够使用这个。
选项:
-r 删除组密码
-a—— 把用户加入组
-d—— 把用户从组中删除。
-M—— 可同时添加多个用户
-A—— 给组指派管理员。
示例:将 zhang3 li4 用户同时加入 group1 , 并指派 zhang3 为管理员。
3 .修改用户组属性 ——groupmod 命令
命令格式: groupmod 选项 用户组
常用选项 :
-g GID—— 为用户组指定新的组标识号。
-n 新用户组 —— 将用户组的名字改为新名字修改用户组的名称和用户组的 GID 值。

1.4 写一个脚本,给定一个文件,比如/etc/inittab,判断这个文件中是否有空白行;如果有,则显示其空行数;否则,显示没有空白。

[root@manage 20221225]# vim kongbaihang.sh 
#!/bin/bash
#########################
#File name:kongbaihang.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-12-26 08:23:19
#Description:
#########################
result=`sed 's/#//' $1 | grep  "^$" | wc -l `
[ $result -eq 0 ] && echo "没有空白行" && exit 1
echo "空白行有:$result"

测试
[root@manage 20221225]# bash kongbaihang.sh inittab.txt 
空白行有:7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值