다음과 같은 bash 명령 목록이 포함된 파일이 있습니다.
echo 'foobar'
echo 'helloworld'
echo 'ok'
다음과 같이 간단히 파이핑하여 이러한 명령을 실행할 수 있습니다 /bin/bash
.
cat commands | /bin/bash
이제 중간에 실행을 일시 중지하고 사용자 입력을 기다리려면 어떻게 해야 합니까? 사용하는 것은 read
효과가 없는 것 같습니다.
echo 'foobar'
echo 'helloworld'
read -p 'Press ENTER to continue'
echo 'ok'
답변1
다음과 같이 실행하세요:
/bin/bash commands
bash
파일을 전달하는 stdin 으로 파일을 파이프합니다 bash
. 이 경우 read
표준 입력 읽기는 터미널이 아닌 파이프 스트림에서 이루어집니다. echo 'ok'
파일을 인수로 지정하면 bash
계속 실행할 수 있지만 이번에는 표준 입력이 리디렉션되지 않습니다 .
나는 당신이 이런 식으로 실행하고 싶다고 가정합니다. 비교하다bash script.sh
이들달리다 그리고 그리고 의 차이점은 무엇인가요 ./script.sh
?