[英]How to consistently record command output in a variable in UNIX
在某些情況下,我在控制台輸出中看到的內容與重定向后記錄的內容有所不同。 我在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
#
(變量包含整個控制台輸出)
再次感謝任何幫助。
您的命令有2個不同的輸出流。
您需要將第二個(stderr)遞歸到第一個。
pfctl -ttable -Ttest 123.123.123.123 > result.txt 2>&1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.