2017-02-09 54 views
11
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,以管道或其他方式傳遞參數?

回答

2

使用/ bin/sh從標準輸入或指定的文件中讀取命令並稍後執行。

man at

所以,你可以給它一個HEREDOC命令,就像這樣:

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

(注意,限制字符串EOF不能在它前面的任何空白)