数分後に実行するようにコマンドをスケジュールします[閉じる]

数分後に実行するようにコマンドをスケジュールします[閉じる]

2分後に実行するようにコマンドをスケジュールしようとしています。

at -c "ls -l" now + 2 minutes

多くの点で失敗する

$ echo "open 'Google Chrome' " | at now + 2 minutes
job 15 at Mon Oct 29 13:31:42 2018

どのように動作させることができますか?

run "open 'Google Chrome' "  at now + 2 minutes

試してみましたがうまくいきません。

$ at now 
at>ls -l
at>^D
at> <EOT>

job 18 at Mon Oct 29 15:55:00 2018

答え1

このオプションの機能を誤解しました-c。このオプションは、at新しいジョブの作成時にコマンドによって生成された一時ファイルの内容を印刷します。at

at簡単なタスクを作成する1つの方法は次のとおりです。

$ at now + 2 minutes
at> ls -l
at> CTRL-D     <---- Press Control Key + D Key simultaniously
at> <EOT>
job 2 at Mon Oct 29 03:34:00 2018
$

at以下は、ジョブ用に生成された一時ファイルの内容です。

$ at -c 2
#!/bin/sh
# atrun uid=1000 gid=1000
# mail student 0
umask 2
XDG_VTNR=1; export XDG_VTNR
SSH_AGENT_PID=3010; export SSH_AGENT_PID
XDG_SESSION_ID=1; export XDG_SESSION_ID
.... lots more environment ....
cd /home/student || {
     echo 'Execution directory inaccessible' >&2
     exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER689a131f'
ls -l

marcinDELIMITER689a131f
$

関連情報