重击:运行while循环,直到输入现有用户名

时间:2019-12-09 04:55:57

标签: bash while-loop command

我正在用bash编写一个小程序,该程序将向系统上的另一个用户发送电子邮件,但是在继续之前,我无法检查系统上是否存在用户名。这是循环:

while [ -z cat /etc/passwd | grep $username ] #<------ Line 47
do
    echo "please input a valid username:"
    read username
done

文件/etc/passwd包含服务器所有用户的用户名,因此我将其用于特定的用户名。如果输出的字符串长度为0,则-z运算符为true,因此我正在使用该运算符来确保grep没有返回输出。命令cat /etc/passwd | grep $username在命令行中运行正常,但在循环中运行不正常。当我运行程序时,出现错误

line 47: [: missing `]"
grep: ]: No such file or directory

有人知道为什么这行不通吗? 谢谢

0 个答案:

没有答案