我有很多用Solaris
编写的脚本,它们使用像这样的shebang:
/usr/bin/sh
/usr/bin/ksh
我将代码移植到Linux,其中的解释器放在/bin
中。
有没有办法修改shebang,以便脚本同时适用于Solaris
和Linux
我希望我们不能像下面那样对shebang进行操作系统检查:
if [ $os == "Linux" ]
then
#!/bin/sh
else
#!/usr/bin/sh
fi
在Linux中添加链接是否可以,如下所示:
/usr/bin/sh --> /bin/sh
答案 0 :(得分:0)
你不能以你想要的方式做一个选择性的shell,即if
- then
构造不能在第一个的shell指令上工作>行。
您提到的最佳方法是创建指向现有shell的符号链接。或者,您需要浏览每个脚本并替换' / usr / sbin'带' / bin'的字符串仅在脚本的第一行,如果第一行以"#!"开头。编写一段代码来完成所有脚本并修改shell指令不应该太难。
答案 1 :(得分:0)
在Solaris中,/bin
链接到/usr/bin
。因此,shebang可以更改为/bin/ksh
以在OS中工作