아래 예와 같이 바꾸기 명령을 실행할 때 실행 순서가 깨지는 이유는 무엇입니까? 먼저 chmod
명령을 실행한 echo 1
다음 echo 2
?
echo $(echo 1; echo 2; chmod 444 nonexistent_file)
결과:
chmod: Cannot access 'nonexistent_file': No such file or directory
1 2
답변1
실행 순서가 깨지지 않았고 출력 순서가 예상한 것과 다릅니다.
echo 1
실행 하고 echo 2
출력을 표준 출력에 기록합니다. 쉘은 명령 대체를 위해 이를 축적합니다. 그런 다음 chmod
오류 메시지를 실행하고 표준 오류로 인쇄합니다. 표준 오류는 터미널로 직접 이동하므로 오류가 먼저 옵니다. 마지막으로 외부 echo
실행 명령은 결과 "1 2"를 대체합니다.