其余的at命令可以简化吗?

it_*_*ure 11 linux bash shell

rest(){
    echo "have a rest in "$1 " minutes"
    at -f /home/rest.sh now+$1 minutes
}
Run Code Online (Sandbox Code Playgroud)

编辑rest.sh脚本.

vim /home/rest.sh
xscreensaver-command --lock
Run Code Online (Sandbox Code Playgroud)

测试它.

rest 60
have a rest in 60  minutes
warning: commands will be executed using /bin/sh
job 7 at Thu Feb  9 11:15:00 2017
Run Code Online (Sandbox Code Playgroud)

可以at简化静止的命令吗?
删除/home/rest.sh,用管道或其他方式传递参数?

zep*_*lin 2

at 和批处理从标准输入或指定文件读取命令,这些命令将在稍后执行,使用 /bin/sh。

man at

因此,您可以使用HEREDOC为其提供命令,如下所示:

rest(){
    echo "have a rest in "$1 " minutes"
    at now+$1 minutes <<EOF
    xscreensaver-command --lock
EOF
}
Run Code Online (Sandbox Code Playgroud)

(注意限制字符串EOF前面不能有空格)