我正在創建 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
僅當您的命令之一拋出錯誤時才會獲取。當然並不適用於所有地方,但仍然更好,因為根本沒有輸出。
管道說明:
# 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 腳本的更多信息,請點擊以下兩個連結:
Bash 初學者指南 - Machtelt Garrels - 2008
高級 Bash 腳本指南 - Mendel Cooper - 2014