답변:
무엇입니까?
$?
명령, 함수 또는 스크립트 자체의 종료 상태를 저장하는 내장 변수입니다.
$?
마지막으로 실행 된 명령의 종료 상태를 읽습니다. 함수가 리턴 된 후 함수 $?
에서 마지막으로 실행 된 명령의 종료 상태를 제공합니다. 이것은 Bash가 함수에 "반환 값"을주는 방식입니다. 0
성공시 또는 1 - 255
오류시 범위의 정수를 리턴합니다 .
좋아하는 사람도 있습니까?
예, bash에는 몇 가지 내장 변수가 있습니다. 여기 에서 목록을 볼 수 있습니다 . 참조 : http://www.tldp.org/LDP/abs/html/exit-status.html
dash
, ksh
, zsh
, 다른 사람의 사이에서).
$status
는 같은 목적으로 사용 합니다
$?
변수이지만 특별한 문자이므로 특수 문자가 허용됩니다.
($?)
가장 최근에 실행 된 포 그라운드 파이프 라인의 종료 상태로 확장됩니다.
쉘은 여러 가지 매개 변수를 특별히 처리합니다. 이 매개 변수는 참조 만 가능합니다. 그들에게 할당은 허용되지 않습니다 :
Variable Meaning
$0 Filename of script
$1 Positional parameter #1
$2 - $9 Positional parameters #2 - #9
${10} Positional parameter #10
$# Number of positional parameters
"$*" All the positional parameters (as a single word) *
"$@" All the positional parameters (as separate strings)
${#*} Number of positional parameters
${#@} Number of positional parameters
$? Return value
$$ Process ID (PID) of script
$- Flags passed to script (using set)
$_ Last argument of previous command
$! Process ID (PID) of last job run in background
* Must be quoted, otherwise it defaults to $@.
출처 :
"$*"
는 단일 단어로서의 모든 위치 매개 변수 일뿐만 아니라 단일 단어 IFS
로서의 첫 문자로 분리 된 모든 위치 매개 변수 입니다. 인용되지 않은 경우 결과가 필드 분할에 영향을 미치므로 $@
, 인용되지 않은 경우에 효과 가 사용됩니다.
$?
bash의 특수 변수는 항상 마지막으로 실행 된 명령 의 리턴 / 종료 코드 를 보유합니다 .
를 실행하여 터미널에서 볼 수 있습니다 echo $?
.
리턴 코드는 [0; 255].
리턴 코드는 0
일반적으로 모든 것이 정상임을 의미합니다.
다른 값은 오류를 나타냅니다. 대부분의 응용 프로그램은 1
사용자 정의 값을 반환 합니다. 명령을 찾지 못한 경우 변수에는 일반적으로127
이 변수를 특정 값으로 설정하려는 경우, bash -c "exit 5"
예를 들어 리턴 코드를 리턴하기 위해 이를 쉽게 수행 할 수 있습니다 5
.
setstatus() { return 5; }