侧边栏壁纸
博主头像
WY博主等级

已枉少年

  • 累计撰写 22 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论
标签搜索

Linux Shell(4)

WY
WY
2022-05-20 / 0 评论 / 0 点赞 / 195 阅读 / 1,487 字
温馨提示:
本文最后更新于 2022-05-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

image-1653062224837
例:
[root@linuxprobe ~]# vim addusers.sh
#!/bin/bash
read -p “Enter The Users Password : " PASSWD
for UNAME in cat users.txt
do
id $UNAME &> /dev/null
if [ ?eq0]thenecho"? -eq 0 ] then echo "UNAME , Already exists”
else
useradd UNAMEecho"UNAME echo "PASSWD" | passwd --stdin UNAME &> /dev/null echo "UNAME , Create success"
fi
done
在脚本中使用read命令读取用户输入的密码值,然后赋值给PASSWD变量,并通过-p参数向用户显示一段提示信息,告诉用户正在输入的内容即将作为账户密码。在执行该脚本后,会自动使用从列表文件users.txt中获取到所有的用户名称,然后逐一使用“id用户名”命令查看用户的信息,并使用$?判断这条命令是否执行成功,也就是判断该用户是否已经存在。

image-1653063773580
[root@linuxprobe ~]# vim Guess.sh
#!/bin/bash
PRICE=$(expr $RANDOM % 1000)
TIMES=0
echo “商品实际价格为0-999之间,猜猜看是多少?”
while true
do
read -p “请输入您猜测的价格数目:” INT
let TIMES++
if [ $INT -eq $PRICE ] ; then
echo “恭喜您答对了,实际价格是 $PRICE”
echo “您总共猜测了 $TIMES 次”
exit
elif [ $INT -gt PRICE];thenecho"太高了!"elseecho"太低了!"fidone该脚本使用PRICE ] ; then echo "太高了!" else echo "太低了!" fi done 该脚本使用RANDOM变量来调取出一个随机的数值(范围为0~32767),然后将这个随机数对1000进行取余操作,并使用expr命令取得其结果,再用这个数值与用户通过read命令输入的数值进行比较判断。这个判断语句分为3种情况,分别是判断用户输入的数值是等于、大于还是小于使用expr命令取得的数值。当前,现在这些内容不是重点,我们要关注的是while条件循环语句中的条件测试始终为true,因此判断语句会无限执行下去,直到用户输入的数值等于expr命令取得的数值后,才运行exit 0命令,终止脚本的执行。

[root@linuxprobe ~]# vim Checkkeys.sh
#!/bin/bash
read -p “请输入一个字符,并按Enter键确认:” KEY
case “$KEY” in
[a-z]|[A-Z])
echo “您输入的是 字母。”
;;
[0-9])
echo “您输入的是 数字。”
;;
*)
echo “您输入的是 空格、功能键或其他控制字符。”
esac
在脚本中组合使用case条件测试语句和通配符(详见第3章),完全可以满足这里的需求。脚本Checkkeys.sh,提示用户输入一个字符并将其赋值给变量KEY,然后根据变量KEY的值向用户显示其值是字母、数字还是其他字符。

0

评论区