如何檢查啟動時是否執行了一組指令?

如何檢查啟動時是否執行了一組指令?

我正在創建 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

相關內容