6
에서 -e가 설정되지 않은 경우에도 첫 번째 0이 아닌 결과 이후에 종료되는 배쉬 스크립트 한 줄이 0이 아닌 결과를 반환하면 이전에 사용한 모든 시스템에서 간단한 bash 스크립트가 계속됩니다. 일부 새로운 Ubuntu LTS 14.x 시스템은 첫 번째 실패시 종료됩니다. 내가 사용했습니다ENV
echo $-
전자가 목록에 표시되지 않습니다. 또 내가 무엇을 찾고 있어야합니까? 코멘트에서
추가 :
$ declare -f command_not_found_handle
command_not_found_handle()
{
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1";
return $?;
else
if [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1";
return $?;
else
printf "%s: command not found\n" "$1" 1>&2;
return 127;
fi;
fi
}
'-f command_not_found_handle' 출력 결과는 무엇입니까? –
예, 결과는 예상대로입니다. [command_not_found_handle() { if [-x/usr/lib/command-not-found]; then /usr/lib/command-not-found - "$ 1"; return $ ?; else [-x/usr/share/command-not-found/command-not-found] 인 경우; then /usr/share/command-not-found/command-not-found - "$ 1"; return $ ?; else printf "% s : 명령을 찾을 수 없습니다. \ n" ""$ 1 "1> & 2; return 127; fi; fi } –
그래서 스크립트가 0이 아닌 값을 반환하거나 스크립트를 찾을 수없는 경우 사용할 수없는 명령을 사용하려고하면 스크립트가 종료됩니다. 스크립트 종료 코드는 무엇입니까? 스크립트의 어느 시점에? 'set -x'는 당신에게 무엇을 보여줍니까? –