我正在尝试制作一个shell脚本,将用户输入与文本文件list.txt的内容进行比较。如果内容匹配,它将返回消息,如果不匹配,则将返回$ input 我尝试过
if [ "$input" == "$(cat list.txt)" ]; then
echo " user exists"
else
echo "$input"
fi
但是每次我运行该程序时,即使用户存在于list.txt中,它也会返回用户输入值。我究竟做错了什么?当我将硬编码的字符串值提供给变量并将这些变量插入if语句中时,这运行得很好。但是,当我尝试与list.txt比较时,输出错误
答案 0 :(得分:3)
如果list.txt
包含用户列表,则无法进行直接字符串比较。将单个用户名与用户列表进行比较将失败。相反,您需要在文件中搜索匹配项:
if grep -q "$input" list.txt; then
echo 'user exists'
fi