从不同位置执行Expect脚本

时间:2012-11-14 16:10:09

标签: linux shell automation clearcase expect

我正在尝试从两个不同的位置运行我的Expect脚本,它将使用以下引用的Expect可执行文件:

  1. 我的linux主目录(#!/usr/bin/expect
  2. 另一台服务器(#!/clearlib/vobs/otherdir/bin/expect
  3. 上的清晰视图

    问题是我无法在两个地方运行脚本,除非我将Expect可执行文件位置的引用更改为文件的第一行。

    如何为相应的目录获取正确的Expect可执行文件实例?

1 个答案:

答案 0 :(得分:3)

如果在两台服务器上正确设置了路径,则可以使用/usr/bin/env

#!/usr/bin/env expect

这会使用PATH中的期望值(在一种情况下为/usr/bin,在另一种情况下为/clearlib/vobs/otherdir/bin

  

通过在示例中使用env,在脚本运行时搜索并找到解释器。
  这使脚本更具可移植性,但也增加了选择错误解释器的风险,因为它在可执行搜索路径的每个目录中搜索匹配。
  它也遇到了同样的问题,因为env二进制文件的路径在每台机器上也可能不同。

如果您在设置正确PATH时遇到问题,那么“/usr/bin/env questions regarding shebang line pecularities”可以提供帮助。