#!/ bin / ksh无法在redhat linux中运行

时间:2014-05-20 03:56:11

标签: linux shell ksh

我正在使用命令:

#!/bin/ksh

作为我的shell脚本中的第一行(希望这将指示shell在KSH Shell中执行)。但是,当我正在执行我的shell时,它实际上并没有发生。

sh test_shell.txt

但是当我在下面使用或者使用(#!/ bin / ksh)时,我得到了正确的输出。

ksh test_shell.txt

在我的代码中,我将值设置为如下变量。

set -A variable_name 

但我认为-A在sh中不被认可,因为它在ksh shell中作为一个赋值。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

执行时

sh test_shell.txt

然后您将使用您的文件名作为要运行的脚本启动sh(Bourne)shell。在这种情况下,脚本的第一行被忽略,因为它是一个注释。该脚本的其余部分应采用Bourne shell语法,因为它是您请求的shell。

如果您将脚本设置为可执行文件(chmod +x test_shell.txt),然后使用以下命令运行它:

./test_shell.txt

然后内核将读取脚本的第一行,看到它以特殊#!开头,然后使用/bin/ksh运行脚本。