linux - 这个 ksh 代码是如何工作的?

标签 linux redirect stdout ksh aix

echo "Hello" > $XYZ

echo ${?}

如果我将这两行复制粘贴到任何 .sh 文件中,脚本都可以正常工作,没有任何问题。第二行中的 ${?} 返回 0。$XYZ 可以替换为任意随机字符串。该变量不需要定义或初始化。

但是,相同的代码对某些用户不起作用。第一行抛出错误“scriptname.sh[425]: : 无法打开”。

第二行中的

${?} 返回 1。

知道为什么同一段代码对不同的用户给出不同的结果吗?

注意:我们在服务器“IBM/AIX RISC System/6000”

中遇到此问题

最佳答案

变量 XYZ 需要保存一个非空字符串,以便 shell 能够解析重定向。如果您希望它默认为根本没有结果,则可以将其初始化为 /dev/null (我想您可能希望重定向到没有任何结果;但事实并非如此)。

关于linux - 这个 ksh 代码是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21996513/

相关文章:

regex - 理解 sed 命令中的正则表达式

java - 使用 Java 获取每个内核的 CPU 负载

c - 如何理解 "__xg"这个宏?

java - 当 RequestDispatcher 包含脚本时无法重定向

c - 一种将标准输出输出到屏幕和文件的方法?

linux - 将文本文件分隔为列;

wordpress - 使用标准 WordPress .htaccess 文件进行 301 重定向 IP 地址

c - freopen 标准输出和控制台

stdout - 如何将编译结果(使用javac)存储到文本文件中?

redirect - 这段代码中我的 $this->redirect(...) 调用有什么问题?