我正在编写可在多个操作系统上使用的期望脚本,但问题是
我不能到处使用#!/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之间的区别。