Shell

執行命令立即執行腳本

  • September 24, 2021

我嘗試使用“at”命令在特定時間停止和啟動伺服器,但由於某種原因,腳本立即執行。我嘗試了不同的方法來做到這一點,但它總是會執行。我究竟做錯了什麼?我試著這樣做:

./stop | at 03:52 092421

像這樣:

./start | at 04:00 tommorow

我究竟做錯了什麼?

您正在呼叫./stop(或./start)。不是at立即執行腳本的人。是你。

./stop | at …./stop同時執行at。這就是管道 ( |) 在外殼中的工作方式。的輸出./stop轉到at。_ 這不是你想要的。

at期望一個命令(您想稍後執行)作為其標準輸入上的字元串。而不是./stop你想要傳遞一個字元串的輸出,說./stop. 管道傳輸字元串的基本方法是echo

echo './stop' | at …

這將執行echoat. 後一個工具將獲取前一個工具的輸出。輸出實際上是./stop. 這就是你想要的。

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