bash는 명령을 실행할 때 아무것도 반환합니까?

bash는 명령을 실행할 때 아무것도 반환합니까?

Bash에서 버그를 테스트하는 방법에 대한 가이드를 찾았습니다. 즉, 언제

x='() { :;}; echo VULNERABLE' bash -c x

아무것도 반환하지 않으며 깨지기 쉽습니다. 하지만 C와 같이 bash가 무언가를 반환할 수 있지만 사용자가 그것을 볼 수 없는 상황이 있습니까?

답변1

예, 종료 코드를 찾고 있지만 여기서는 전혀 관련이 없습니다. VULNERABLE사용 중인 bash 버전이 취약한 경우 실행하는 테스트가 터미널에 인쇄됩니다. 표시되지 않으면 테스트를 통과한 것입니다.

프로그램이 반드시 사용자에게 표시되지 않는 정보를 반환할 수 있다는 것은 사실이지만 여기서의 질문과는 관련이 없습니다. 예를 들어, bash에서 프로그램의 종료 코드를 보려면 다음 $?변수를 사용하십시오.

$ ls /tmp > /dev/null
$ echo $?
0
$ ls /nonexistent_directory  > /dev/null
ls: cannot access /nonexistent_directory: No such file or directory
$ echo $?
2

따라서 요청하지 않는 한 볼 수 없는 것을 반환하는 것이 가능합니다. 하지만 그렇다고 해서 실행하는 테스트가 실패할 수 있다는 의미는 아닙니다.

관련 정보