ユーザーが既存のユーザーだけを入力できるようにするには、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

条件を否定するには使用する必要があります!

これはwhile condtrueの場合は実行を意味し(trueまで実行)とは逆ですconduntil condcond

untilただし、POSIX 互換シェルを含む多くの言語では、否定は常に有効です。

関連情報