我们将执行从unix到Linux的迁移.排版-L仅适用于ksh
我创建了以下文件:
#!/bin/ksh -u
echo $SHELL
typeset -L21 RUN_LOGL="LOG_FILE "
Run Code Online (Sandbox Code Playgroud)
通常,shebang应该指出正确的解释器(ksh).但是当我以bash方式调用脚本时:
$ . test.ksh
Run Code Online (Sandbox Code Playgroud)
输出是:
/bin/bash
-bash: typeset: -L: invalid option
typeset: usage: typeset [-aAfFilrtux] [-p] name[=value] ...
Run Code Online (Sandbox Code Playgroud)
脚本是bash方式的解释器,并且不接受typeset -L.而如果我只是打电话
$test.ksh
Run Code Online (Sandbox Code Playgroud)
它运行正常.
我们调用脚本(bash方式还是ksh方式)的重要性是否足以忽略shebang?
先感谢您.
bash ×1