我们将执行从unix到Linux的迁移。 排版-L仅适用于ksh
我创建了以下文件:
#!/bin/ksh -u
echo $SHELL
typeset -L21 RUN_LOGL="LOG_FILE "
通常情况下,shebang应该指出正确的解释器(ksh)。但是当我用bash方式调用脚本时:
$ . test.ksh
输出结果为:
/bin/bash
-bash: typeset: -L: invalid option
typeset: usage: typeset [-aAfFilrtux] [-p] name[=value] ...
脚本是bash方式的解释器,并且不接受typeset -L。 而如果我只是打电话
$test.ksh
它运行良好。
我们调用脚本(bash方式还是ksh方式)的重要性是否足以忽略shebang?
提前谢谢。
答案 0 :(得分:8)
答案 1 :(得分:0)
只有在以前没有定义解释器时才使用shebang,例如:
sh myScript.sh
将始终调用您的sh
,并忽略shebang。