我们将执行从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?
先感谢您.
. test.ksh
Run Code Online (Sandbox Code Playgroud)
难道不执行该脚本.它正在寻找脚本.
采购脚本总是忽略了shebang.shebang仅在脚本执行时使用:
chmod +x test.ksh
./test.ksh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
696 次 |
| 最近记录: |