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 ];
答案 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
,即匹配时。