【问题标题】:change terminal command to no return将终端命令更改为不返回
【发布时间】:2016-03-11 08:24:20
【问题描述】:

我需要更改终端命令

stat file.txt | echo "File exists"

这样,如果文件不存在,我就不会得到任何输出,只有当它存在时才会得到回显部分。最简单的方法是什么?

谢谢!

【问题讨论】:

    标签: bash command-line terminal command


    【解决方案1】:

    echo 忽略它的标准输入,所以stat 产生什么(如果有的话)并不重要。此外,您无需运行stat 来检查文件是否存在。

    [ -e file.txt ] && echo "File exists"
    

    如果[ 命令的退出状态为零(当file.txt 存在时发生),则执行echo。否则,echo 不会被执行。

    【讨论】:

    • 谢谢,这已经很棒了。但我需要它与 stat 命令链接。
    • 为什么?你不是 stat 特有的东西。它产生的任何输出都会被管道右侧创建的子shell丢弃。
    【解决方案2】:

    你的意思可能是:

    stat file > /dev/null 2>&1 && echo "File exists"
    

    【讨论】:

    • 看起来不错,但你能解释一下吗,尤其是 dev/null/ 部分? :)
    • > /dev/null 2>&1 小心,不会出现来自 stat 的命令输出。 && 之后的部分被执行,当上一个命令返回“成功”作为退出代码(即 0)
    猜你喜欢
    • 1970-01-01
    • 2014-06-12
    • 2016-11-17
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    相关资源
    最近更新 更多