true
Bourne 쉘에 내장되지 않았습니다. :
항상 있었다 (그것은 #
소개 되기 전에 주석을 입력하는 방법 이었다).
이 유형 짧은 때문에 즉, 아마도 사람들이 선호하는 주된 이유입니다 :
이상 true
.
(대한 POSIX 쉘에서 또 다른 차이가 있습니다 bash
만 POSIX 모드를) 동안 true
일반 내장이 (심지어 내장 될 필요가 없습니다)이고, :
A는 특수 내장. 이는 몇 가지 영향을 미치며 대부분이 특정 경우에는 영향을 미치지 않을 것입니다.
경우 :
명령 때문에 실패 리디렉션의 포함, 실패, 그 출구 쉘됩니다. 실제로 리디렉션을 전달하지 않으면 아마 차이가 없을 것입니다.:
$ sh -c ': > / ; echo HERE'
sh: 1: cannot create /: Is a directory
$ sh -c 'true > /; echo HERE'
sh: 1: cannot create /: Is a directory
HERE
에가 var=value :
, var
로 설정을 유지 value
한 후 :
하지의 경우, 반환 true
:
$ var=1; var=2 : ; echo "$var"
2
$ var=1; var=2 true; echo "$var"
1
또한주의 || true
의 껍질에 작품 rc
과 csh
가족이 아닌을 || :
(그러나 취소하지 않기 set -e
에 csh
).
|| :
와 동일하지 않습니다 :
. 다른 방법 (즉, 이전 파이프 라인이 실패한 경우)을 의미 하거나 실행:
합니다.
set -e
false
때문에 출구로 쉘을 야기 set -e
하고 false
비 제로 (실패) 종료 상태가 있습니다. set -e
효과가 취소 된 경우 반환 0이 아닌 종료 상태가 사용되는 명령 상태 에서 같은 :
if false; then ...
while false; do ...
false && : ...
false || : ...
false && :
만 취소합니다 set -e
. 종료 상태를 false || :
취소 set -e
하고 설정 0
하므로 명령의 실패 종료 코드를 무시하고 싶다는 것이 관용적입니다. 대부분 || true
은 더 읽기 쉽다고 주장합니다 (의도를보다 명확하게 전달합니다).
||:
(공간이없는) bash에서도 유효 하다는 점에 주목할 가치 가 있습니다. 이 같은 일을|| :
하거나|| true
.