目标是启动一个后台进程,将数据从管道 p2 复制到 STDOUT,因为 p2 由其他进程提供数据。
我猜命令不正确。然而,Konsole 应用程序窗口不应在按 Enter 键后立即消失。我应该收到错误消息或提交崩溃报告窗口或其他内容。
为什么会出现这种情况,是bug吗?
我怎样才能修复命令以获得我想要的东西? (稍后我可能想将数据复制到 STDOUT 之外的其他位置。)
答案1
我想说这是一个错误。你正在运行什么版本的 bash?您的命令行不正确,但它不应该使 shell 崩溃。我希望看到这样的输出:
$ cp p2 &2 & [1]24800 [2]24801 $ bash: 2: 未找到命令 cp:“p2”后缺少目标文件操作数 尝试“cp --help”获取更多信息。 [1]- 退出 1 cp -i p2 [2]+ 出口 127 2
'&2' 没有任何意义。好吧,它的意思并不像你想象的那样。它在后台运行上一个命令(“cp”)(由于参数不足 - 没有目标而失败),然后尝试也在后台运行名为“2”的命令。
这与运行相同:
cp p2 & 2 &
您没有运行“exit”的名为“2”的别名、脚本或 shell 函数吗?如果不是,那么 shell 肯定不应该终止。
你想做什么?我猜您正在尝试显示命名管道 p2 的内容,并在后台运行它?如果是这样,请尝试以下操作:
cat p2 &