我试图让如果用户输入一个不存在的用户,他们将被要求重试,但这是相反的效果。我确定我的 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
您需要用 否定条件
!
。请记住,这
while cond
意味着执行 whilecond
为真;它与until cond
(执行直到cond
为真)相反。until
存在于多种语言中,包括任何符合 POSIX 的 shell;然而,否定总是有效的。