터미널 단일 입력에서 실행 가능한 if/else 실행

터미널 단일 입력에서 실행 가능한 if/else 실행

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

관련 정보