
當我想使用 延遲程式的執行時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
。