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
$