小编Nic*_*mas的帖子

你能用 `at` 命令执行 Bash 函数吗?

我想在预定的时间执行 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)

bash environment-variables function at

5
推荐指数
1
解决办法
2882
查看次数

标签 统计

at ×1

bash ×1

environment-variables ×1

function ×1