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

时间:2015-11-18 21:34:13

标签: bash shell

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

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同时转到stdout和日志文件。我之前在脚本中看到过这种行为,并且总是想知道:

  • 为什么会这样?
  • 如何制作它以便我不必输入return来退出脚本?

1 个答案:

答案 0 :(得分:3)

您不必点击输入。您已经处于下一个提示状态。尝试输入命令并按Enter键。

问题是你已经输出了输出并且下一个提示被打印到屏幕上。

因此,在标记错误输出被打印之前,您的提示会被打印,这样您就会“失去”光标定位。

按Ctrl-L说明清除屏幕也会让你“回到”你的提示。