如何更改at命令的預設shell

如何更改at命令的預設shell

當我想使用 延遲程式的執行時at,它準確地告訴我

warning: commands will be executed using /bin/sh

bash例如,如何變更此預設 shell ?

答案1

請參見問題發佈在 Unix & Linux Stack Exchange 上。第一句話說:

在 Linux 下,at 總是警告您它將使用 /bin/sh 執行指定的命令,而不是您最喜歡的 shell。您無法隱藏此訊息,它是硬編碼在原始程式碼中的。

它還建議了一種解決方法:

您傳遞的命令由 /bin/sh 解釋。如果您願意,此命令可以是腳本的路徑;然後 /bin/sh 將執行腳本程序,導致腳本的解釋器啟動並解釋腳本。腳本的語言完全獨立於啟動它的程式。因此,如果您想執行 bash 腳本(即以 #!/bin/bash 開頭的腳本),只需將腳本的路徑傳遞給 at 並忽略不相關的訊息。

bash因此,要使用而不是運行命令sh,您可以將腳本傳遞給at。只要腳本有 shebang 行,它就會由 shebang 指向的任何程式執行。如果使用#!/bin/bash,它將由 執行bash

相關內容