从不同位置执行 Expect 脚本

Jak*_*e88 5 linux shell automation clearcase expect

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

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

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

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

Von*_*onC 4

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

#!/usr/bin/env expect
Run Code Online (Sandbox Code Playgroud)

PATH这将使用(/usr/bin在一种情况下,/clearlib/vobs/otherdir/bin在另一种情况下)中找到的期望

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

如果您对设置右侧有疑问PATH,那么“/usr/bin/env有关 shebang 线特性的问题”可以提供帮助。