2015-11-18 156 views
2

當我運行我的腳本時,我不得不輸入回車鍵,以便在完成後退出 腳本。這是我的腳本:爲什麼我必須輸入enter才能退出我的bash腳本?

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" 

我測試迫使所有回聲的同時去標準輸出和日誌文件。我以前在腳本中看到過這種行爲,並一直在想:

  • 爲什麼會發生這種情況?
  • 如何使它不必輸入return退出腳本?

回答

3

您不必擊中輸入。您已經在下一個提示。嘗試輸入命令並按回車。

問題是,你已經跑了輸出和下一個提示打印到屏幕上。

因此,您的提示得到打印之前標準錯誤輸出得到打印,所以你「失去」你的光標定位。

用Ctrl-L說清楚屏幕,也會讓你回到你的提示。

相關問題