我有一个 bash 脚本,我想在给定时间运行它。通常我会写这样的东西来立即运行它:
./my_script.sh 1 1 n 8 3 keywords here
我正在尝试使用“执行相同的命令在" 命令但它不起作用。如果我运行这个,例如:
at 2230 -f my_script.sh 1 1 n 8 3 keywords here
我收到此错误:
syntax error. Last token seen: 1
Garbled time
如何在给定时间运行带有参数的脚本?
答案1
不需要 -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调用script-plus-args。
at-job 文件包含一个用于首先重新创建环境的脚本,因此 PATH、cwd 和大多数其他内容都可用。
建议脚本具有 shebang,因为 at 最初可能会调用与在线 shell 不同的 shell。
在 1030 之前更改或删除脚本可能是不明智的(尽管我认为它是在作业脚本运行之前修复错误的有用工具)。