在fish-shell脚本中,如何将错误信息打印到stderr流?
例如,该消息应该发送到stderr流而不是默认的stdout流。
例如,该消息应该发送到stderr流而不是默认的stdout流。
echo "Error: $argv[1] is not a valid option"
echo "Error: $argv[1] is not a valid option"
你可以将输出重定向到 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 ^
* stdin、stdout 和 stderr 的文件描述符分别为 0、1 和 2。
* &
符号意味着你想要将输出重定向到一个文件流而不是文件本身。
* 比较各种 shell 中的重定向方式(bash、fish、ksh、tcsh、zsh)
1
- 只需添加>&2
即可,因为从标准输出重定向是默认的。 (不允许有空格 -> &2
不起作用。) - Rory O'Kane