使用 while 循环使用户输入仅是现有用户

使用 while 循环使用户输入仅是现有用户

我试图做到这一点,如果用户输入一个不存在的用户,他们会被要求重试,但这是相反的效果。我确信我的 while 条件有问题,我只是看不到:(

代码:

#!/bin/bash

echo -n "Name of the username: " 
read username 
while id -u $username >/dev/null 2>&1;
do 
echo "User doesn't exist"
echo -n "Name of the username: "
read username
done

答案1

您需要使用 来否定条件!

请记住,这意味着当为 truewhile cond时执行;它与(执行直到为真)cond相反。until condcond

until存在于多种语言中,包括任何符合 POSIX 标准的 shell;然而,否定总是有效的。

相关内容