Linux 将参数传递给at-f脚本
我正在尝试在Linux上使用Linux 将参数传递给at-f脚本,linux,bash,parameters,at-job,Linux,Bash,Parameters,At Job,我正在尝试在Linux上使用at命令调度bash脚本 at 22:20 -f /path/to/script.sh 发出上面的命令就可以了。但是,脚本需要一些参数。在脚本路径后面添加参数将返回错误消息: at 22:20 -f /path/to/script.sh /arg/one argtwo argthree syntax error. Last token seen: / 是的,传递给脚本的第一个参数是另一个(绝对)路径。我的猜测是,at并没有将我的脚本视为脚本,而是视为一个文件,正如
at
命令调度bash脚本
at 22:20 -f /path/to/script.sh
发出上面的命令就可以了。但是,脚本需要一些参数。在脚本路径后面添加参数将返回错误消息:
at 22:20 -f /path/to/script.sh /arg/one argtwo argthree
syntax error. Last token seen: /
是的,传递给脚本的第一个参数是另一个(绝对)路径。我的猜测是,at
并没有将我的脚本视为脚本,而是视为一个文件,正如at-help
所暗示的那样
如何解决此问题并向脚本中添加参数?指定要在stdin上运行的命令,例如通过here字符串:
at 22:20 <<< "/path/to/script.sh /arg/one argtwo argthree"
在22:20您可以在不使用-f的情况下发出任何命令作为输入:
at 22:20
/path/to/script.sh /arg/one argtwo argthree
^d
你是对的,它只需要一个文件名,而不是一个命令。您只需在22:20运行,然后作为该命令的输入,给出您希望在22:20运行的命令(即/path/to/script.sh/arg/one arg two arg three
),然后在单独的行上控制-D以标记输入的结束。它应该看起来有点像这样($
是我的提示):
(请注意,“作业11…”是打印的确认消息。
$ at 22:20
/path/to/script.sh /arg/one argtwo argthree
job 11 at Thu May 27 22:20:00 2021
$