Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell #和之间的空间!在shebang(#!/usr/bin/ksh)_Shell_Ksh_Shebang - Fatal编程技术网

Shell #和之间的空间!在shebang(#!/usr/bin/ksh)

Shell #和之间的空间!在shebang(#!/usr/bin/ksh),shell,ksh,shebang,Shell,Ksh,Shebang,我正在编写一个KornShell脚本,其中涉及使用#进行进程替换是一个无效的shebang,完全被忽略。没有shebang的脚本的行为取决于您如何调用它。 如果从shell调用:一些shell使用/bin/sh来运行这些脚本;其他人利用自己的目的。假设您在测试该脚本时交互使用的shell(并且发现脚本仅适用于无效的shebang)在后一个集合中,因此您的脚本实际上是使用bash运行的,或者是使用您当时的活动交互shell 如果在没有shell的情况下调用:大多数操作系统将拒绝执行这样的二进制文件

我正在编写一个KornShell脚本,其中涉及使用
#进行进程替换
是一个无效的shebang,完全被忽略。没有shebang的脚本的行为取决于您如何调用它。 如果从shell调用:一些shell使用
/bin/sh
来运行这些脚本;其他人利用自己的目的。假设您在测试该脚本时交互使用的shell(并且发现脚本仅适用于无效的shebang)在后一个集合中,因此您的脚本实际上是使用bash运行的,或者是使用您当时的活动交互shell

如果在没有shell的情况下调用:大多数操作系统将拒绝执行这样的二进制文件


Real David Korn ksh93正确地支持进程替换,但一些第三方克隆和古老的ksh实现不支持。
如果您打算使用ksh,强烈建议使用正版David Korn ksh93(不是mksh、pdksh或其他第三方克隆),并且(就您目前的情况而言)将确保支持进程替换。

也有可能
/bin/sh
是ksh的符号链接,我通过Cygwin安装了ksh,Cygwin提供了mksh,它不支持进程替换。你能给我指一下如何在windows上安装ksh93的指南吗(对不起,这里是noob)。通过快速的谷歌搜索,看起来是你最好的选择。
array=()
while IFS= read -r -d '' x;do
    array+=( "$x" )
done < <(some command)