为什么我必须键入enter才能退出bash脚本?

为什么我必须键入enter才能退出bash脚本?,bash,shell,Bash,Shell,当我运行脚本时,我被迫键入enter键,以便退出脚本 完成后编写脚本。这是我的剧本: log_file=/tmp/log.out rm -f $log_file setup() { exec > >(tee -a ${log_file} ) exec 2> >(tee -a ${log_file} >&2) } setup echo "hello world" echo "hello again" 我正在测试强制所有echo同时转到标准输出

当我运行脚本时,我被迫键入enter键,以便退出脚本 完成后编写脚本。这是我的剧本:

log_file=/tmp/log.out

rm -f $log_file

setup()
{
  exec > >(tee -a ${log_file} )
  exec 2> >(tee -a ${log_file} >&2)
}

setup

echo "hello world"
echo "hello again"
我正在测试强制所有echo同时转到标准输出和日志文件。我以前在脚本中见过这种行为,并且一直想知道:

  • 为什么会发生这种情况
  • 如何使我不必键入return退出脚本

    • 您不必按回车键。您已经处于下一个提示。尝试键入命令并按enter键

      问题是,您已经完成了输出,下一个提示将打印到屏幕上

      因此,在打印标准错误输出之前会打印提示,因此您会“丢失”光标位置

      用Ctrl-L键清除屏幕也会让你“回到”提示