Expect와 같은 프로그램에 일반 인터프리터를 지정하시겠습니까?

Expect와 같은 프로그램에 일반 인터프리터를 지정하시겠습니까?

여러 운영 체제에서 사용할 수 있는 예상 스크립트를 작성 중인데 문제는

난 evreywhere를 사용할 수 없어서 #!/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의 차이점을 잘 모르겠습니다.

관련 정보