【问题标题】:"/dev/bin/load.sh[425]: : cannot open" - Linux file redirect to empty string“/dev/bin/load.sh[425]: : 无法打开” - Linux 文件重定向到空字符串
【发布时间】:2014-02-23 17:32:50
【问题描述】:

以下命令对某些用户抛出错误。任何人都可以解释为什么错误只发生在某些用户身上。 $EMPTY_STRING 对于所有用户都是空的。

回显 $OUTPUT > $EMPTY_STRING

【问题讨论】:

    标签: linux file redirect pipe


    【解决方案1】:

    当我在我的 bash 终端中运行它时:

    $ echo aaa > ''
    bash: : No such file or directory
    

    所以我猜 /dev/bin/load.sh[425] 只是指您正在运行的脚本。我怀疑$EMPTY_STRING 是空的,因为在这种情况下错误会有所不同(如果你在 bash 中):

    $ a=''
    $ echo aaa> $a
    bash: $a: ambiguous redirect
    

    您可以尝试比较他们的env 并确保这些用户使用相同的shell。

    【讨论】:

      【解决方案2】:

      朱塔尔,

      你是对的,/dev/bin/load.sh 是包含我提到的代码行的脚本。脚本中的实际代码是“echo $OUTPUT > $TMPFILE”。

      但是,变量 $TMPFILE 没有在操作系统的任何地方定义。我在上面提到的代码行之前打印了日志文件中的值,它是空的。

      必须为某些用户启用某些 Linux 设置,并且当 STDOUT 重定向到未定义的变量时,编译器不会抛出任何错误。

      我知道下面的代码不会抛出任何错误。

      回显 $OUTPUT > /dev/null

      是否有任何 Linux 设置可以将所有未定义的变量视为“/dev/null”?

      【讨论】:

        猜你喜欢
        • 2014-10-17
        • 1970-01-01
        • 2017-08-21
        • 2014-12-03
        • 2017-02-24
        • 1970-01-01
        • 2014-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多