の GUI フロントエンドを作成中ですxrandr
が、起動時に実行するコマンドがいくつか必要です。
.desktop
に配置されたファイルを使用しています~/.config/autostart
。
私の設定では動作しないので、これがxrandr
機能するかどうかはわかりません。想定どおりに動作していることはわかっていますが、私のシステムがこれをサポートしていないだけです。大量の xrandr エラーが発生します。つまり、起動時にエラーが発生し、目立った変化がないことを意味します。
コマンドが実行されたかどうかを確認する方法はありますか?
答え1
自動開始.desktop
ファイルがスクリプトの場合は、次の例のようにスクリプトに制御エコーを挿入するだけです。
# if yyou want only data saved for one run
echo "Script has run on $(date)" > ~/script.log
# if you want a continous log output append
if [ -e ~/script-log ]
then
echo "Script has run on $(date)" >> ~/script.log
else
touch ~/script.log
echo "Script has run on $(date)" >> ~/script.log
fi
この方法では、この方法で制御するために必要な変数データを出力することもできます。スクリプト内のすべてのコマンドの後に最終結果が印刷され、スクリプトが実行されたことを確認するようにしてください。
スクリプト内のコマンドが失敗したかどうかを正確に知りたい場合は、次のようにします。
# do this at start of your script
if [ -e ~/script-error.log ]
then
# we do nothing
else
touch ~/script-error.log
fi
# then within your script (I use as example here cd /root just to demonstrate)
# you can do this with nearly all commands
cd /root 2>> ~/script-error.log
これは、コマンドの 1 つがエラーをスローした場合にのみフェッチされます。もちろん、どこにでも適用できるわけではありませんが、出力がまったくないよりはましです。
配管の説明:
# single piping symbol (overwrite the existing file and creates one if not existant)
> # pipes all output
1> # pipes only success messages
2> # pipes only error messages
# double piping symbol (append to an existing file and fail if file does not exist)
>> # pipes all output
1>> # pipes only success messages
2>> # pipes only error messages
bash スクリプトについてさらに詳しく知りたい場合は、次の 2 つのリンクを参照してください。
初心者のための Bash ガイド - Machtelt Garrels - 2008
上級 Bash スクリプト ガイド - Mendel Cooper - 2014