Sed 脚本根据用户输入打印变量

Sed 脚本根据用户输入打印变量

我想编写一个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

相关内容