if/else 사용자 입력을 허용하는 실행 프로그램이 있고 bash 터미널에서 한 줄로, 즉 프로그램 프롬프트를 거치지 않고 실행하고 싶습니다.
echo 명령을 전달하는 방법이 있습니까?
답변1
프로그램이 데이터를 한 줄씩 읽는다고 가정하면 bash에서 다음을 수행할 수 있습니다.
{
echo "input 1"
echo "input 2"
echo "input 3"
...
echo "input n"
} | my-program
{}
그룹 내 명령의 출력이 파이프로 연결되는 명령 그룹을 만듭니다 my-program
.
또 다른 방법은 다음과 같이 작성할 수 있는 heredoc을 사용하는 것입니다.
{
cat <<EOM
input 1
input 2
input 3
...
input n
EOM
} | my-program
구분 기호를 끝내는 문자열 은 한 줄에 있어야 하므로 명령이 출력을 쉘 STDOUT이 아닌 파이프로 직접 보내도록 EOM
명령 그룹이나 하위 쉘을 만들어야 합니다 .cat