할당 문제:
터미널에서 "good", "ls"를 실행하여 실행상태를 확인합니다.
내가 뭘 한거지
good;$?
산출:
zsh: command not found: good
zsh: command not found: 127
ls;$?
산출:
quiz.sh
zsh: command not found: 0
이 명령이 존재하는 경우 "ls" 명령을 찾을 수 없는 이유는 무엇입니까?
답변1
"명령을 찾을 수 없습니다"라는 메시지가 표시되지 않습니다 ls
. 거기에서 출력을 볼 수 있습니다 ls
. command not found
, 0
이것이 확장 되는 $?
것입니다.
$?
이전 명령의 상태입니다. 실행 후에는 ls
오류가 없으므로 상태는 0입니다. 를 실행한 후 good
상태는 127이며, 이는 명령을 찾을 수 없을 때 셸에서 사용하는 상태입니다.
상태를 표시하려면, 표시만 하면 된다고 쉘에 알려주어야 합니다. 이것이 바로 이 echo
명령의 목적입니다.
good; echo $?
ls; echo $?
답변2
$?
이전 명령의 반환 코드입니다. 네가 원한다면바라보다그것, 당신은 필요합니다 echo $?
. 이는 일반적으로 if
명령문에 사용됩니다( 0
불행히도 여기서 = true).