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

时间:2017-02-09 02:20:33

标签: linux bash shell

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

编辑rest.sh脚本。

vim /home/rest.sh
xscreensaver-command --lock

进行测试。

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

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

1 个答案:

答案 0 :(得分:2)

  

at和批量读取来自标准输入或指定文件的命令,这些命令将在以后使用/ bin / sh执行。

man at

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

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

(请注意,限制字符串EOF前面不能有任何空格。)