我想编写一个sed
读取用户输入的脚本,如果变量与预定义的字符串匹配,则应该打印欢迎,否则应该打印抱歉。
例如,如果用户输入“Hello”,系统应该打印“Welcome”,如果没有,则应该打印“Sorry”。
答案1
#!/bin/bash
read -p "Enter some input:" USERINPUT
(grep "$USERINPUT" -q inputfile.txt ) && echo "Welcome" || echo "Sorry"
答案2
如果您尝试输入密码,那肯定不是这样做的方法。
首先,比较密码应存储为哈希值。md5sum
例如,使用以下命令创建:
echo hello | md5sum
给出
b1946ac92492d2347c6235b4d2611184 -
现在为了获取输入,我们可以使用@Serg 的答案,稍作修改。我们使用 来-s
隐藏输入(保密)。
echo Please enter password:
read -s input
并将其与哈希值进行比较:
input=$(echo $input | md5sum)
if [ $input == "b1946ac92492d2347c6235b4d2611184 -" ]
then
echo "Welcome, your password was correct"
else
echo "Sorry, wrong password"
fi