1、检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限
#!/bin/bash
if test -f /home/test.sh
then
echo "该文件存在,且存在于/home下"
if test -x /home/test.sh
then
echo "且有执行权限"
else
echo "且没有执行权限"
fi
else
echo "/home目录不存在该文件"
fi
2、提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,
如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别。
男生进男生组,女生进女生组,如果输入错误请提示错误
#!/bin/bash
read -p "请输入跑步成绩" num
if [[ $num -gt 0 && $num -lt 10 ]]
then
echo "进入选拔赛"
read -p "请输入数字,0代表女,1代表男" sex
if [ $sex -eq 1 ]
then
echo "被分入男子组"
elif [ $sex -eq 0 ]
then
echo "被分入女子组"
else
echo "输入内容不对,只能输入‘0’、‘1’!"
fi
else
echo "不符合10秒内的要求,被淘汰"
fi
3、用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录。(后缀为.tar.gz时用tar -zxvf,后缀为.tar.bz2用tar -jxvf)
#!/bin/bash
read -p "请输入文件名:" n
case $n in
*.tar.gz)
tar -zxvf $n -C /opt
;;
*.tar.bz2)
tar -jxvf $n -C /opt
;;
*)
echo "不符合要求"
;;
esac
4、提示用户输入内容,使用if 语句判断输入的内容是否为整数。再判断输入的内容是奇数还是偶数。
#!/bin/bash
read -p "请输入一个整数" num
if [[ $num -eq $num ]] &> /dev/null
then
echo "这是一个整数"
if [[ $num%2 -eq 0 ]]
then
echo "且这是一个偶数"
else
echo "且这是一个奇数"
fi
else
echo "这不是一个整数"
fi
5、用if 语句判断主机是否存活.保存到/opt/hosts.txt
(ping -c 5 不显示ping的过程)
#!/bin/bash
ping -c 10 $ip &> /dev/null
if [[ $i -eq 0 ]]
then
echo "ip号为 $ip online"
else
echo "ip号为 $ip offline"
fi
6、用case语句控制 firewalld start|stop|restart|status 来管理firewalld服务,
要求如果命令选项不对,则提示输入不正确: {start|stop|status|restart}”。
#!/bin/bash
read -p "请输入‘start’、‘stop’、‘status’、‘restart’来控制防火墙" num
case $num in
start)
systemctl start firewalld
echo "1"
;;
stop)
systemctl stop firewalld
echo "2"
;;
status)
systemctl status firewalld
echo "3"
;;
restart)
systemctl restart firewalld
echo "4"
;;
*)
echo "你输入有误"
esac
7、一家店铺,五种商品进行选择,
衣服 500
裤子 400
鞋子 350
帽子 150
袜子 50
用户逛到了这家店,每次选购完之后或者进店什么都不买都提示用户,你还要接着买吗?
如果不再继续购物,提示用户的消费金额,结账才能走了。
#!/bin/bash
echo "欢迎光临,1号商品衣服500元,2号商品裤子400元"
echo "3号商品鞋子350元,4号商品帽子150元,5号商品袜子50元"
sum=0
for ((;;))
do
read -p "购买商品请输入商品编号,不购买输入’0‘:" n
case $n in
0)
echo "您一共消费$sum"
break
;;
1)
sum=$[$sum+500]
echo "您买入了一件衣服"
;;
2)
sum=$[$sum+400]
echo "您买入了一件裤子"
;;
3)
sum=$[$sum+350]
echo "您买入了一双鞋子"
;;
4)
sum=$[$sum+150]
echo "您买入了一顶帽子"
;;
5)
sum=$[$sum+50]
echo "您买入了一顶帽子"
;;
*)
echo "编号输入错误"
esac
done
8、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
read -p "输入一个小于100的整数:" n
sum=0
for((;;))
do
if [[ $n -le 0 ]]
then
break
fi
sum=$(($sum+$n))
n=$(($n-1))
echo $sum
done
echo $sum
9、实现可变菱形。
read -p "输入一个数" n2
count=0
for ((i = 1; i<= n2; i++))
do
for ((j=0;j<n2-i;j++))
do
echo -n " "
done
for ((j=0;j <$((2*i-1));j++))
do
echo -n "*"
done
echo ""
done
for ((i=1;i <= n2-1;i++))
do
for ((j=0;j < i;j++))
do
echo -n " "
done
for ((j=0;j < $(( 2*($n2-1-i)+1 ));j++))
do
echo -n "*"
done
echo ""
done
10、查找/opt/test中的所有文件,并将它们复制/opt/test1中
mkdir test1
for i in /opt/test/*
do
test -f $i
if [ $? -eq 0 ]
then
echo $i
cp $i /opt/test1/
fi
done
ls test1/
11、查找opt目录下的所有.txt位结尾的文件,如果存在,打印文件内容。然后把文件内容保存到/opt/new.txt中
touch /opt/new.txt
for i in /opt/*.txt
do
test -f $i
if [ $? -eq 0 ]
then
echo "$i的内容是"
cat $i
num=`cat $i`
echo $num >> /opt/new.txt
echo ""
fi
done
12、用户名存放在users.txt文件中,每行一个,判断文件里的用户是否存在,若该用户存在,
输出提示该用户已存在;用户存在但没设密码,则提示用户并让用户设置密码;
若该用户不存在,提示用户输入密码,建立用户并设立其密码
function usermanager {
id $user &> /dev/null
if [ $? -eq 0 ]
then
echo "用户已经存在"
#存在的用户要判断是否有密码,!!
res=$(cat /etc/shadow | grep "$user" | awk -F: '{print $2}')
if [ "$res" == "!!" -o -z "$res" ]
#判断用户的密码情况分!!和为空
then
echo "123456" | passwd --stdin $user
else
echo "用户密码已经创建"
fi
#else分支解决用户不存在的情况
else
echo "${user}不存在"
useradd $user
echo "123456" | passwd --stdin $user
fi
}
user=ky04
usermanager