con*_*rum 5 bash prompt shell-script process-substitution
我有一段使用进程替换的代码。
当我运行它时,它工作正常,但它不会退出 -只是挂在那里等待输入。
为什么以及如何克服?
prepro() {
in=$(< <(cat) ) # capture input
echo -e "$in"
}
echo -e "some words" > >(prepro)
echo "FINISHED"
Run Code Online (Sandbox Code Playgroud)
相反,如果我这样做,它会立即退出。
echo -e "$in" >>"test.log"
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?
澄清: BASH 4.4.19(1)-release
在我的电脑上,我看到了 runningecho -e "$in"和 running之间的区别echo -e "$in" >>"test.log"。
前者不给我提示(但我可以正常运行命令)。我得到:
user@server:~$ ./test.sh
FINISHED
user@server:~$ some words
?
Run Code Online (Sandbox Code Playgroud)
我必须按 ENTER 才能恢复提示。
后者正常给我提示。
user@server:~$ ./test.sh
FINISHED
user@server:~$ ?
Run Code Online (Sandbox Code Playgroud)
我很好奇我在这里做错了什么。