2011-05-12 45 views
4

所以我有一個腳本在另一個腳本上運行測試用例。我試圖在運行測試用例時重定向stderr。這是給我的問題的一部分是讀命令:Bash讀取和stderr重定向

SCRIPT1內:

read -p "Delete $file? (y/n) " input 

testscript內:

$script $opts $file 2>/dev/null 

從SCRIPT1讀取調用重定向爲好。

回答

4

將提示重定向到stdout。

read -p "Delete $file? (y/n) " input 2>&1 
+1

爲什麼會讀取調用發送擺在首位,以標準錯誤? – kjprice 2011-05-12 20:48:10

+1

這就是它在我的bash手冊頁中記錄的方式:'-p提示符:顯示標準錯誤提示符'' – 2011-05-12 20:58:16

+1

>爲什麼要將讀取調用首先發送到stderr? ...我會打電話給打印提示功能。如果您只有2個要使用的流stdout和stderr,則需要將實際數據轉換爲stdout,以便僅傳遞stderr以傳遞非數據信息。 (也就是說,除了錯誤消息,stderr可以用於其他信息流)...祝你好運! – shellter 2011-05-13 14:09:05

1

你可以去簡單:

echo "Delete $file? (y/n)" 
read input