簡體   English   中英

如何在UNIX中的變量中一致地記錄命令輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM