표준 입력에서 읽어야 하는 C 프로그램이 있습니다. 이는 요구 사항 중 하나이며 변경할 수 없습니다.
나는 내가 원하는 모든 디렉토리를 생성하고, 출력 등을 처리하고, 내 프로그램을 컴파일하고 실행하는 간단한 bash 스크립트를 작성했습니다.
프로그램을 실행하면 사용자가 stdin에서 입력을 제공할 때까지 기다립니다.
나는 bash에서 입력을 제공할 수 있기를 원합니다. 따라서 (이유 때문에) 사용자에게 입력을 요청하지 마십시오. 따라서 이상적으로는 입력이 사용자에게 표시되지만 스크립트에서 제공되기를 바랍니다.
내가 다음과 같이 쓴다면:
./task2
cat <<< "my input here"
작업을 실행하고 작업이 완료되면 cat 명령을 실행합니다. 프로그램이 사용자 입력을 요구할 때마다 어떻게든 그 고양이를 강제하고 싶습니다.
가능합니까?
답변1
tee
내가 올바르게 이해했다면 이 목적 으로 사용할 수 있습니다 . Bash 스크립트에서 다음 줄이 컴파일된 C 프로그램을 실행한다고 가정합니다.
./my_program
다음으로 바꾸세요:
printf "%s\n" "my input here" | tee /dev/tty | ./my_program
my input here
최종 장치로 인쇄됩니다.그리고./my_program
읽을 수 있도록 표준 입력 으로 파이프합니다 .