#!/bin/ksh在redhat linux中不工作

#!/bin/ksh在redhat linux中不工作,linux,shell,ksh,Linux,Shell,Ksh,我正在使用命令: #!/bin/ksh 作为我的shell脚本的第一行(希望这将指示shell在KSH shell中执行)。但当我像下面这样执行shell时,它实际上并没有发生 sh test_shell.txt 但是当我使用likedown with或with out(#!/bin/ksh)时,我得到了正确的输出 ksh test_shell.txt 在我的代码中,我为变量设置了一个值,如下所示 set -A variable_name 但我认为-A在sh中是不被认可的,因为它在ks

我正在使用命令:

#!/bin/ksh
作为我的shell脚本的第一行(希望这将指示shell在KSH shell中执行)。但当我像下面这样执行shell时,它实际上并没有发生

sh test_shell.txt
但是当我使用likedown with或with out(#!/bin/ksh)时,我得到了正确的输出

ksh test_shell.txt
在我的代码中,我为变量设置了一个值,如下所示

set -A variable_name 
但我认为-A在sh中是不被认可的,因为它在ksh shell中作为一项任务工作。 如何解决此问题?

当您执行

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

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

./test_shell.txt
然后内核将读取脚本的第一行,看到它以特殊的
#开头
,并在执行时使用
/bin/ksh

运行脚本

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

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

./test_shell.txt

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

运行脚本。您是否验证了
ksh
的路径?很抱歉,忘了提及我正在REDHAT LIUNX中执行上述操作。您是否验证了
ksh
的路径?很抱歉,忘了提及我正在REDHAT LIUNX中执行上述操作。是的,它对我有效,请告诉我是否有其他方法可以解决这个问题。是的,它对我有效。请告诉我是否有其他方法可以解决这个问题。