Shell

一個過程可以在完成後將自己帶回前台嗎?(AIX/ksh)

  • August 21, 2015

我有一個 while 循環數到 5 並在完成時回顯“完成”。我希望能夠在後台使用“&”執行腳本,並在它執行時繼續發出命令。

但是當它完成後,我希望它在回顯“完成”之前使其成為前台程序。在那之後,我希望它會顯示一個新的命令提示符行。我可以回顯“\nDone”,並且我理解為什麼在後台執行它只會列印輸出而不是結束/開始新的提示。但我想知道是否有可能在結束之前基本上將某種“合併作業”重新組合在一起,如果我可以在其他地方應用它,在我的腳本中使用內置的作業控制。

這不是一個實際問題,只是好奇。

   i=0

   while [ $i -lt 5 ]
   do
       let i+=1
       sleep 1
   done

   fg
   echo "Done"

不 - 正在執行的程序不能做那種事情,因為它們是由 shell 作為後台的,而 shell 的工作是說明哪個程序是前台/後台/掛起的。

試試這個 - 刪除fg, 然後在後台執行你的 shell 腳本(即&在結尾處帶有 a )當它完成時,輸出將被脫口而出到你的控制台。

引用自:https://unix.stackexchange.com/questions/224562