Expect?와 같은 프로그램에 대한 범용 인터프리터를 지정하시겠습니까?

Expect?와 같은 프로그램에 대한 범용 인터프리터를 지정하시겠습니까?

여러 운영 체제에서 작동하는 기대 스크립트를 작성 중인데 문제는

아무데서나 사용할 수는 없어서 #!/usr/bin/expect이렇게 하려고 합니다.

 #!`which expect`

상단에 있지만 실패했습니다.

[sesiv@itseelm-lx4151 ~]$ ./sendcommand
-bash: ./sendcommand: `which: bad interpreter: No such file or directory

어떤 솔루션.

답변1

가장 효과적인 기술 중 하나(perl, python, php 인터프리터 등):

#!/usr/bin/env expect

env나는 항상 거기에 있고 싶다 /usr/bin/. 이제 많은 통역사가 이런 방식으로 작업할 수 있습니다. 이전에도 다른 해커가 존재했지만 이해하기 어렵거나 이식성이 없었습니다.

답변2

나는 추천한다

#!/bin/sh
expect_path="$(which expect)"
"$expect_path" "$0" "$@"

이것이 효과가 있기를 바랍니다. 나는 bash와 sh의 차이점에 익숙하지 않습니다.

관련 정보