사용자가 기존 사용자만 입력하도록 하려면 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까지 실행)과 반대입니다 cond.until condcond

until그러나 POSIX 호환 셸을 포함하여 많은 언어에서 부정은 항상 유효합니다.

관련 정보