我正在編寫一個Perl腳本,它應該在shell中執行命令並解析它們的輸出。作爲shell我打算使用csh。我已經開始這在重定向csh中的stderr時遇到麻煩
my $out = `cmd`
但它不捕獲STDERR,我也需要。使用輸出重定向運行sh不會產生任何效果
my $out = `sh -c "cmd 2>&1"`
仍然僅捕獲STDOUT,而不捕獲STDERR。
即使重定向在csh到文件對我來說不起作用
tcsh$ cmd >& logfile.log
仍然捕捉STDOUT只%)
我想執行的命令是actuallty sh腳本,並在此的一些命令腳本打印到STDERR中,我想捕獲該輸出。如果我執行sh -c "cmd 2>/dev/null"
STDERR實際上轉到/ dev/null,並且只有STDOUT被打印在終端中。
任何人都可以幫助我嗎?
我試過運行sh shell並執行'cmd 2> logfile.log',但即使在這種情況下'logfile.log'也是空的。我懷疑tcsh不是這裏的主要問題 – mrvn 2011-04-19 11:23:47