一、根据执行命令时输入的文件地址,打印文件下的所有目录
#首先创建一个sh文件:
touch sh02.sh
#授予执行权限:
chmod +x sh02.sh
编辑sh02文件:
#vim sh02.sh
1、使用ls打印目录
#根据用户输入的目录遍历此目录下的所有文件
ls -l $1
#执行1
./sh02.sh /
#执行2
./sh02.sh /etc
2、tree
#根据用户输入的目录遍历此目录下的所有文件
tree $1
#执行1
./sh02.sh /
#执行2
./sh02.sh /etc
二、备份文件
tar -czvpf log.tar.gz $1
#执行
./sh02.sh /yhj/
三、定时执行
1、实例
echo '11111'
#编写计划任务,执行备份脚本
crontab -e
#每分钟执行,执行成功保存到log.log文件中,失败保存到error.txt
* * * * * sh /yhj/sh/sh02.sh >>/yhj/sh/log.log 2>>/yhj/sh/error.txt
#查看计划任务
crontab -l
四、内存和空间检测脚本
#提取根分区剩余空间
disk_size=$(df / | awk '/\//{print $4}')
#提取内存剩余空间
mem_size=$(free | awk '/Mem/{print $4}')
if [ $disk_size -gt 1200 ]
then
echo "空间正常:$disk_size"
else
echo "空间警告:$disk_size"
fi
if [ $mem_size -gt 12000000000000000 ]
then
echo "内存正常:$mem_size"
else
echo "内存警告:$mem_size"
fi
五、猜数字游戏
# RANDOM 为系统自带的系统变量,可以生成 0‐32767范围内的随机数
# 使用取余算法将随机数变为 1‐100 的随机数
num=$[RANDOM%100+1]
echo "系统生成的随机数为:$num"
# 使用 read 提示用户猜数字
# 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),‐lt(小于),‐le(小于等于)
while :
do
read -p "系统生成了1-100的随机数,请输入您猜的数字: " cai
if [ $cai -eq $num ]
then
echo "您太厉害了,竟然猜对了"
exit
elif [ $cai -gt $num ]
then
echo "猜大了小点行不行"
else
echo "猜小了慷慨点好不好"
fi
done
六、用户身份判断
if [ $USER == 'root' ]
then
echo "是超级管理员root用户"
else
echo "不是超级管理员,用户是$USER"
fi
七、添加用户
#如果用户不输入密码,则统一使用默认的 123456 作为默认密码。
read -p "请输入用户名: " user
#使用‐z 可以判断一个变量是否为空,如果为空,提示用户必须输入账户名,并退出脚本退出码为 2
#没有输入用户名脚本退出后,使用$?查看的返回码为 2
if [ -z $user ];then
echo "您不需输入账户名"
exit 2
fi
#使用 stty ‐echo 关闭 shell 的回显功能
#使用 stty echo 打开 shell 的回显功能
stty -echo
read -p "请输入密码: " pass
stty echo
pass=${pass:123456}
useradd "$user"
echo "$pass" | passwd ‐‐stdin "$user"
八、输入三个数并进行升序排序
read -p "数字1:" num1
read -p "数字2:" num2
read -p "数字3:" num3
# num1 存最小的值,num2 存中间值,num3 存最大值
z=0
# 如果 num1 大于 num2,就把 num1 和 num2 的值对调,确保 num1 变量中存的是最小值
if [ $num1 -gt $num2 ];then
z=$num1
num1=$num2
num2=$z
fi
# 如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值
if [ $num1 -gt $num3 ];then
z=$num1
num1=$num3
num3=$z
fi
# 如果 num2 大于 num3,就把 num2 和 num3 对标,确保 num2 变量中存的是小一点的值
if [ $num2 -gt $num3 ];then
z=$num2
num2=$num3
num3=$z
fi
echo "排序后数据(从小到大)为:$num1,$num2,$num3"
九、石头剪刀布
game=(石头 剪刀 布)
num=$[RANDOM%3]
computer=${game[$num]}
# 出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是 3 中不同的可能
echo "请根据提示出手势"
echo "1:石头"
echo "2:剪刀"
echo "3:布"
read -p "请选择 1‐3:" person
case $person in
1)
if [ $num -eq 0 ]
then
echo "平局加油"
elif [ $num -eq 1 ]
then
echo "你赢啦,真棒"
else
echo "计算机赢,好遗憾"
fi;;
2)
if [ $num -eq 0 ]
then
echo "计算机赢,好遗憾"
elif [ $num -eq 1 ]
then
echo "平局加油"
else
echo "你赢,真棒"
fi;;
3)
if [ $num -eq 0 ]
then
echo "你赢,真棒"
elif [ $num -eq 1 ]
then
echo "计算机赢,好遗憾"
else
echo "平局加油"
fi;;
*)
echo "必须输入 1‐3 的数字"
esac
十、九九乘法表
# 9*9 乘法表
for i in `seq 9`
do
for j in `seq $i`
do
echo -n "$j*$i=$[i*j] "
done
echo
done
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_44432032/article/details/121968371
内容来源于网络,如有侵权,请联系作者删除!