Bash

使用“at”安排帶有參數的腳本

  • February 10, 2020

我有一個 bash 腳本,我想在給定時間執行它。通常我會寫這樣的東西來立即執行它:

./my_script.sh 1 1 n 8 3 keywords here

我正在嘗試使用“ at ”命令執行相同的命令,但它不起作用。如果我執行它,例如:

at 2230 -f my_script.sh 1 1 n 8 3 keywords here

我收到此錯誤:

syntax error. Last token seen: 1
Garbled time

如何在給定時間執行帶有參數的腳本?

不需要 -f 選項。嘗試:

at 2230 my_script.sh 1 1 n 8 3 keywords here

或者

echo 'my_script.sh 1 1 n 8 3 keywords here' | at 2230

at -f myFile立即將該整個文件直接複製到工作文件中。它沒有將參數傳遞給腳本的機制。

我展示的兩個替代方案僅將命令本身複製到工作文件中。然後在 2230 呼叫腳本加參數。

at-job 文件包含一個腳本,用於首先重新創建您的環境,因此 PATH、cwd 和大多數其他內容都可用。

建議腳本具有 shebang,因為 at 最初可能會呼叫與您的線上 shell 不同的 shell。

在 1030 之前更改或刪除腳本可能是不明智的(儘管我認為這是在作業腳本執行之前修復錯誤的有用工具)。

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