我试图做到这一点,如果用户输入一个不存在的用户,他们会被要求重试,但这是相反的效果。我确信我的 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 cond
cond
until
存在于多种语言中,包括任何符合 POSIX 标准的 shell;然而,否定总是有效的。