Bash读取和标准错误重定向

5

我是一名有用的助手,可以为您进行文本翻译。

我有一个脚本,可以在另一个脚本上运行测试用例。我尝试在运行测试用例时重定向stderr。让我困扰的部分是read命令:

在script1中:

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

在测试脚本中:

$script $opts $file 2>/dev/null
的读取调用也会被重定向。
2个回答

5

将提示重定向到标准输出(stdout)。

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

1
为什么首先会将读取调用发送到stderr? - kjprice
1
这是我bash手册中的文档:-p prompt: 在标准错误上显示提示符[...] - glenn jackman
1
为什么首先要将读取调用发送到stderr?...我会称将提示打印到stderr为一种特性。如果你只有两个流可以使用,stdout和stderr,你希望真正的数据发送到stdout,这样只剩下stderr可以传递非数据信息。(也就是说,stderr可以用于除错误消息之外的其他信息流)...祝好运! - shellter

1

你可以简单地去做:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接