2011-05-12 52 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