我正在尝试从两个不同的位置运行我的 Expect 脚本,它将与以下引用的 Expect 可执行文件一起使用:
- 我的 linux 主目录 (
#!/usr/bin/expect
) - 另一台服务器上的明文视图 (
#!/clearlib/vobs/otherdir/bin/expect
)
问题是我无法在这两个地方运行脚本,除非我将 Expect 可执行位置的引用更改为文件的第一行。
如何获取对应目录的 Expect 可执行文件的正确实例?
我正在尝试从两个不同的位置运行我的 Expect 脚本,它将与以下引用的 Expect 可执行文件一起使用:
#!/usr/bin/expect
)#!/clearlib/vobs/otherdir/bin/expect
)问题是我无法在这两个地方运行脚本,除非我将 Expect 可执行位置的引用更改为文件的第一行。
如何获取对应目录的 Expect 可执行文件的正确实例?
如果在两台服务器上都正确设置了路径,则可以使用/usr/bin/env
:
#!/usr/bin/env expect
这将使用PATH
(/usr/bin
在一种情况下,/clearlib/vobs/otherdir/bin
在另一种情况下)中找到的期望
通过在示例中使用
env
as 代替,解释器在脚本运行时被搜索和定位。
这使脚本更具可移植性,但也增加了选择错误解释器的风险,因为它在可执行搜索路径上的每个目录中搜索匹配项。
它也有同样的问题,env
二进制文件的路径也可能在每台机器上不同。
如果您在设置正确时遇到问题PATH
,那么“/usr/bin/env
关于 shebang 线特性的问题”可以提供帮助。