我正在使用命令:
#!/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中作为一个赋值。 我该如何解决这个问题?
答案 0 :(得分:4)
执行时
sh test_shell.txt
然后您将使用您的文件名作为要运行的脚本启动sh
(Bourne)shell。在这种情况下,脚本的第一行被忽略,因为它是一个注释。该脚本的其余部分应采用Bourne shell语法,因为它是您请求的shell。
如果您将脚本设置为可执行文件(chmod +x test_shell.txt
),然后使用以下命令运行它:
./test_shell.txt
然后内核将读取脚本的第一行,看到它以特殊#!
开头,然后使用/bin/ksh
运行脚本。