【问题标题】:What does 2>&1 (usually after 1>/dev/null) variable in shell scripting do?shell 脚本中的 2>&1(通常在 1>/dev/null 之后)变量有什么作用?
【发布时间】:2021-12-02 08:29:25
【问题描述】:

我目前正在学习 shell 脚本,我正在尝试理解我从 GitHub 获得的包含以下行的源代码:

mountpoint /mnt/share 1>/dev/null 2>&1

什么是 2>&1 变量保持? 它的目的是什么?

我尝试过 Google 搜索,但它们会屏蔽标点符号...

谁能给我一些指示?谢谢。

【问题讨论】:

    标签: shell scripting io-redirection


    【解决方案1】:

    2>&1 将标准错误重定向到标准输出
    官方文档:https://tldp.org/LDP/abs/html/io-redirection.html

    【讨论】:

    • 我执行这个命令后,你知道为什么输出$$吗?如果 mount 存在则返回值 0,如果值不存在则返回 1?我阅读了文档,但无法理解其中的逻辑。
    • 使用 1> 只重定向标准输出,使用 2> 重定向标准错误,$?显示最后一个命令的返回值,在你的情况下是挂载点,所以你必须阅读它的文档man7.org/linux/man-pages/man1/mountpoint.1.html
    • 我看到了! EXIT STATUS 部分...所以所有 Linux 命令都必须有这个 EXIT STATUS 代码。不知道...谢谢!祝你有美好的一天。
    • 没错,linux命令是普通程序,所以它们有一个退出状态(返回值),如果你熟悉C/C++,你必须把它看作程序的最后一个返回(大多数流行的命令都是用这些编写的)它是函数 main() 的返回值,在 Python 等更高级的语言中这是隐藏的。祝你有美好的一天!
    • @alexHX12 “更高级别”与“更高级”完全不同
    猜你喜欢
    • 2016-05-20
    • 2012-05-17
    • 2015-11-13
    • 2015-12-14
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    • 2012-03-09
    相关资源
    最近更新 更多