验证电子邮件是否已存在 - Shell脚本

时间:2014-10-11 10:16:00

标签: shell

if [ -f users.txt ];
  a=$(cat users.txt | grep "$email" | cut -d ',' -f1 )
  then
    if [ $a -eq $email ];
      then
        echo " Your email is already registed"
        ./new_user.sh
    fi
fi

我有一个名为users.txt的文件,其中包含所有用户的列表,其中的电子邮件位于第一列,我想验证电子邮件是否已存在...有人可以帮助我吗?

我第一次创建用户时,文件users.txt不存在,这就是我正在做的if [ -f users.txt ];

1 个答案:

答案 0 :(得分:1)

if的语法错误。正确的语法是

if [ condition ]
then
   body
fi

所以a=$(cat users.txt | grep "$email" | cut -d ',' -f1 )不能在你写的地方。

现在,如果您想检查$email中是否存在users.txt,则只需要grep。第二个if可以重写

if [ -f users.txt ];
  grep  -q "$email" users.txt
  if (( $? == 0 ))
  then
        echo " Your email is already registed"
        ./new_user.sh
  fi

 fi

它做什么??

grep -q "$email" users.txt匹配$email文件users.txt中的-q是安静的,因此不会打印匹配的行。

$?是上一个命令的退出状态,此处grep成功完成时会有值0,即匹配时。