Можно ли упростить команду в покое?

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

Чтобы отредактировать файл rest.sh script.

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

at и команд чтения со стандартного ввода или указанного файла, которые должны быть выполнены позднее, используя /bin/sh.

man at

Итак, вы можете запрограммировать команды с помощью HEREDOC, например:

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

(обратите внимание, что предельная строка EOF не может иметь перед ней пробелов)