我想在预定的时间执行 Bash 函数。我认为正确的工具是at
命令。
但是,它似乎不起作用。
function stupid () {
date
}
export -f stupid
cat << EOM | at now + 1 minute
stupid
EOM
Run Code Online (Sandbox Code Playgroud)
等待一分钟后,我检查了我的邮件,这是我看到的错误:
sh: line 41: syntax error near unexpected token `=\(\)\ {\ \ date"
"}'
sh: line 41: `"}; export BASH_FUNC_stupid()'
Run Code Online (Sandbox Code Playgroud)
我不明白这里出了什么问题,尤其是因为我知道该功能有效。
$ stupid
Fri May 29 21:05:38 UTC 2015
Run Code Online (Sandbox Code Playgroud)
查看错误,我认为使用了不正确的 shell 来执行函数(sh
而不是bash
),但是如果我检查$SHELL
它/bin/bash
,我看到它指向,并且手册页at
说:
$ echo $SHELL
/bin/bash
$ man at
...
SHELL The value of …
Run Code Online (Sandbox Code Playgroud)