본문 바로가기
리눅스

true and false (commands)

by 다움위키 2023. 12. 23.

유닉스-계열 운영 시스템에서, truefalse는 유일한 함수가 항상 미리-결정된 탈출 상태로 반환하는 것인 명령입니다. 프로그래머와 스크립트는 종종 명령의 성공 (탈출 상태 0) 또는 실패 (비-영)를 평가하기 위해 명령의 탈출 상태를 사용합니다. true와 false 명령은 명령 성공의 논리적 값을 나타내는데, 왜냐하면 true는 0을 반환하고 false는 1을 반환하기 때문입니다.

Usage

그 명령은 보통 쉘 스크립트조건문루프에 사용됩니다. 예를 들어, 다음 쉘 스크립트는 중단될 때까지 echo hello 루프를 반복합니다:

while true
do
  echo hello
done

그 명령은 다음 예제와 같이 다른 명령 시퀀스의 성공 또는 실패를 무시하기 위해 사용될 수 있습니다:

make … && false

/etc/passwd에서, 사용자의 로그인 쉘false로 설정하면, 대화형 쉘에 대한 접근을 효과적으로 거부되지만, 해당 계정은 FTP와 같은 다른 서비스에 대해 여전히 유효할 수 있습니다. (비록 /sbin/nologin이, 사용 가능하면, 세션을 종료하기 전에 알림을 인쇄하므로 이 목적에 더 적합할 수 있습니다.)

그 프로그램은 "실제" 매개변수를 사용하지 않습니다; GNU 버전에서, 표준 매개변수 --help는 사용법 요약을 표시하고 --version은 프로그램 버전을 표시합니다.

Null command

true 명령은 때때로 단일 콜론 (:)으로 쓰인 매우 유사한 null 명령으로 대체됩니다. null 명령은 쉘에 내장되어 있고, true가 외부 프로그램이면 따라서 더 효율적일 수 있습니다 (true는 보통 쉘 내장 함수입니다). 우리는 true 대신 :를 사용하여 위의 예제를 다시 작성할 수 있습니다:

while :
do
  echo hello
done

null 명령은 무시되는 매개변수를 취할 수 있습니다. 그것은 역시 ${parameter:=word} 매개변수 확장 형식을 통해 쉘 변수에 기본값을 할당하는 것과 같은 부작용에 대해 no-op 더미 명령으로도 사용됩니다. 예를 들어, bashbug에서, Bash에 대해 버그 보고 스크립트는 다음과 같습니다:

 : ${TMPDIR:=/tmp}
 : ${EDITOR=$DEFEDITOR}
 : ${USER=${LOGNAME-`whoami`}}

External links

Manual pages