質問: ### 前提・実現したいこと シェルスクリプトで毎朝8時にキー入力を実行し、それ以外の時間は数十分おきに(ランダム)朝とは別のプログラムを実行するシステムを作りたいです。 atコマンドでコードを書いたのですが実現できませんでした。 ### 発生している問題・エラーメッセージ ``` 行 4: at: コマンドが見つかりません ``` ### 該当のソースコード ``` #!/bin/bash while : do at 8:00 xte 'key F5' sleep $((RANDOM % 50)) xte 'key F5' done ``` ### 試したこと at>ファイル名.sh で実行ファイルの指定 ### 補足情報(FW/ツールのバージョンなど) OS ubuntu
回答: 1.まず、`at`は指定コマンドを実行するコマンドじゃなくて、指定コマンドを登録するコマンドです。 なので、登録を無限ループで無限回実行するというのは意味不明です。 2.`at`は実行するコマンドは標準入力から得ます。 ``` at 8:00 xte 'key F5' sleep $((RANDOM % 50)) xte 'key F5' ``` だと、この4つのコマンドを順番に実行するだけです。 3.`sleep $((RANDOM % 50))`だと最大49秒しか待ちません。数十分おきにという記述と合いません。 4.`行 4: at: コマンドが見つかりません`なので、そもそも`at`コマンドがインストールされていません。 以上を踏まえて、書き直しましょう。