리눅스이고요...

 

특정 쉘스크립트(파일생성)를 실행하는데,

 

이전에 생성된 파일이 있을 경우 덮어씌울 건지 물어봅니다.

y를 입력후 엔터 쳐야 덮어쓰고.. n을 입력하고 엔터쳐야 취소됨 

 

근데, 커맨드라인이라면 직접 키 입력을 하면 되지만,,,

 

php exec()로 실행하게 되면 직접 입력할 수가 없어서요.. 

 

그래서 잘은 모르겠지만, 프로세스 상에서 멈춰있는 상태로 계속 있을 것 같은데,

 

정확히는 선택 입력을 받는 곳은, sh가 아니라 실행하는 프로그램에서 물어보는 거라, 강제적으로 pass 처리하게 할 수가 없어서요.

 

혹시 이런 경우 해결할 방법이 있을까요?

 

 

  • Lv19
    exec('echo "입력값" | 명령어', $out, $ret);
    stdin으로 입력을 받는 경우 사용할 수 있습니다.
  • Lv19 Lv16

    먼저 답변 감사합니다.

     

    exec('test.sh');

    이렇게 실행한다면

    그 뒤에


    exec('echo "입력값" | 명령어', $out, $ret);

    이렇게 입력하라는 말씀인가요??

  • Lv16 Lv19
    네. A | B 와 같이 실행시 A의 출력(stdout)를 B의 입력(stdin)으로 보내줍니다.