다음 작업은 모두 효과가 없습니다.
echo bash | bash
echo dash | dash
echo "bash -c bash" | bash
echo "dash -c dash" | dash
왜? 예를 들어 첫 번째 줄에서는 bash 인스턴스를 생성한 다음그것입력을 기다리는 또 다른 bash 인스턴스가 생성됩니다. 그러나 입력을 기다리지 않고 종료됩니다. 상위 bash도 종료됩니다. 따라서 두 bash 인스턴스가 모두 종료되고 이 명령을 시작한 쉘 인스턴스로 돌아갑니다. 제가 어디서 잘못 이해한 걸까요?
답변1
두 번째 bash 인스턴스하다bash
stdin( 문자열을 읽는 파이프와 동일) 에서 입력을 기다리지만 echo
프로세스가 종료되고 파이프의 쓰기 끝이 닫힐 때만 EOF를 수신합니다.
두 번째 bash에 몇 가지 입력을 제공할 수도 있습니다.
(echo bash; echo echo hjello) | bash
hjello