在某些情况下,我在控制台输出中看到的内容与重定向后记录的内容不同。我在Linux / bash上看到了这个,但这个例子是ksh / OpenBSD。有办法解决这个问题吗?
例如:
# pfctl -ttable -Ttest 123.123.123.123 > result.txt
0/1 addresses match.
# more result.txt
result.txt (END)
换句话说,“0/1地址匹配”。是打印在控制台上,但我不能为我的生活把它变成文件,变量或任何东西。我用过$()和>这适用于大多数命令,但是偶尔会有一个命令在屏幕上吐出东西,但我没有通过重定向/管道得到任何东西。我希望有人能够阐明这种特殊性。
再次对比一下:
# OUTP=$(pfctl -tscanners -Ttest 123.123.123.123)
0/1 addresses match.
# echo $OUTP
#
(没有回应,变量不能保存控制台输出):
# OUTP=$(date)
# echo $OUTP
Sun Aug 21 08:33:37 PDT 2016
#
(变量包含整个控制台输出)
再次感谢您的帮助。
答案 0 :(得分:1)
您的命令有2个不同的输出流 你需要将第二个(stderr)重新编写为第一个。(/ p>)
pfctl -ttable -Ttest 123.123.123.123 > result.txt 2>&1