【问题标题】:How to print to stderr in fish shell?如何在鱼壳中打印到标准错误?
【发布时间】:2017-11-12 11:29:54
【问题描述】:

在 fish-shell 脚本中,如何将错误消息打印到 stderr?

例如,这条消息应该发送到 stderr 流而不是默认的 stdout 流。

echo "Error: $argv[1] is not a valid option"

【问题讨论】:

    标签: shell stdout stderr io-redirection fish


    【解决方案1】:

    您可以将输出重定向到stderr,例如:

    echo "Error: $argv[1] is not a valid option" 1>&2
    

    作为参考,这里有一些适用于 fish* 的常见 IO 重定向。

    foo 1>&2 # Redirects stdout to stderr, same as bash
    
    bar 2>&1 # Redirects stderr to stdout, same as bash
    
    bar ^&1  # Redirects stderr to stdout, the fish way using a caret ^
    

    * 标准输入、标准输出和标准错误的文件描述符分别为 0、1 和 2。
    * & 表示您希望重定向到文件流而不是文件。
    * Comparison of redirection in various shells (bash, fish, ksh, tcsh, zsh)

    【讨论】:

    • 您不需要1 - 只需添加>&2 也可以,因为从标准输出重定向是默认设置。 (不允许有空格——> &2 不起作用。)
    • 这应该被标记为答案,我发现它很有帮助!
    猜你喜欢
    • 1970-01-01
    • 2010-11-09
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多