[root@server ~]# bash << eof
> cat adsfasdf
> echo $?
> eof
cat: adsfasdf: No such file or directory
0
종료 상태 1 대신 0을 반환하는 이유를 설명할 수 있는 사람이 있나요?
답변1
$?
변수 확장을 하기 때문이다앞으로코드는 bash
실행을 위해 전달되므로 echo
종료 코드는 이전에 실행된 명령의 코드입니다 bash
.
bash-4.1$ ( exit 42 )
bash-4.1$ bash <<EOF
cat asdfasdf
echo $?
EOF
cat: asdfasdf: No such file or directory
42
작은따옴표만 사용여기 문서변수 확장을 중지하는 구분 기호:
bash-4.1$ bash <<'EOF'
cat asdfasdf
echo $?
EOF
cat: asdfasdf: No such file or directory
1