Content #
如果你有意在脚本中生成错误消息,可以将单独的一行输出重定向到STDERR。这只需要使用输出重定向符号将输出重定向到STDERR文件描述符。
在重定向到文件描述符时,必须在文件描述符索引值之前加一个&:
echo "This is an error message" >&2
这行会在脚本的STDERR文件描述符所指向的位置显示文本。下面这个例子就使用了这项功能:
$ cat test8
#!/bin/bash
# testing STDERR messages
echo "This is an error" >&2
echo "This is normal output"
$
如果像平常一样运行这个脚本,你看不出任何区别: $ ./test8 This is an error This is normal output $
记住,在默认情况下,STDERR和STDOUT指向的位置是一样的。但是,如果在运行脚本时重定向了STDERR,那么脚本中所有送往STDERR的文本都会被重定向: $ ./test8 2> test9 This is normal output $ cat test9 This is an error $
太好了!通过STDOUT显示的文本出现在了屏幕上,而送往STDERR的echo语句的文本则被重定向到了输出文件。
这种方法非常适合在脚本中生成错误消息。脚本用户可以像上面的例子中那样,直接通过STDERR文件描述符重定向错误消息。
From #
Linux命令行与shell脚本编程大全