2017-06-10 76 views
2

在一個fish-shell腳本中,如何將錯誤消息打印到stderr?如何打印到魚殼中的stderr?

例如,此消息應該轉到stderr流而不是默認的stdout流。

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

回答

5

您可以將輸出重定向到stderr,例如:

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

作爲參考,這裏是魚的工作*一些常見的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中,魚和ksh,tcsh中的zsh)

+0

你不需要'1' - 只需添加'>&2'工作過,因爲從標準輸出重定向是默認的。 (不允許有空格 - '>&2'不起作用。) –