如何将用户输入与文本文件的内容进行比较

时间:2018-09-28 03:00:59

标签: bash

我正在尝试制作一个shell脚本,将用户输入与文本文件list.txt的内容进行比较。如果内容匹配,它将返回消息,如果不匹配,则将返回$ input 我尝试过

if [ "$input" == "$(cat list.txt)" ]; then
      echo " user exists" 
else 
      echo "$input"
fi 

但是每次我运行该程序时,即使用户存在于list.txt中,它也会返回用户输入值。我究竟做错了什么?当我将硬编码的字符串值提供给变量并将这些变量插入if语句中时,这运行得很好。但是,当我尝试与list.txt比较时,输出错误

1 个答案:

答案 0 :(得分:3)

如果list.txt包含用户列表,则无法进行直接字符串比较。将单个用户名与用户列表进行比较将失败。相反,您需要在文件中搜索匹配项:

if grep -q "$input" list.txt; then
    echo 'user exists'
fi