腳本(Script) ============= ===================== 如何撰寫腳本(Script) ===================== 寫出自己的scripts不難,你只要注意以下幾點就好。 #. 使用scripting language來撰寫。如bash shell,perl,python 均可。 #. 注意meta data格式。在執行時期,lazyscripts會將您執行所需要的scripts放到同一目錄。因此只要引用當前目錄即可。 #. 變數環境。 Lazyscripts提供一些好用的環境變數,在Lazyscripts執行期間可讓scripts自由取用。 ========================== 環境變數 (Shell Variable) ========================== Lazyscripts 在執行初期會產生一個新檔案,並暫存當下的環境變數。 當 Lazyscritps 獲得 root 權限,便能從從這個新檔案讀回之前預存的變數。 * DISTRIB_ID: Linux 發佈版本名稱,例如 Fedora, Ubuntu 等。 * DISTRIB_CODENAME: 版本名,用於 Fedora、Ubuntu、Debain 例如 hardy, lenny。 * DISTRIB_VERSION: 發佈版本編號,用於 Fedora、openSUSE 例如 11.0, 11.1。 * WIN_MGR: 使用的視窗管理員(Window Manater),例如 Gnome 或 KDE。 * PLAT_NAME: 硬體平台名稱,例如 i386、x86_64。 * REAL_USER: 執行Lazyscripts的使用者ID。 * REAL_HOME: 執行Lazyscripts的使用者家目錄位置。 * WGET:"wget --tries=2 --timeout=120 -c" ========================== 腳本目錄 (Script Category) ========================== 當你提交腳本給腳本庫維護者時,腳本維護者會依據你腳本的性質放入相對應的腳本目錄。 * Productivity – 辦公室相關:例: vim, openoffice * Graphics – 繪圖:gimp * Development – 程式開發相關: eclipse * Entertain – 娛樂相關:例:mplayer,miro * InfoManagement – 資訊管理相關 例: sunbird, gnucash * Games – 遊戲: 例:gweled * Hardware – 硬體相關 例:IBM小紅點靈敏度。 * Multimedia – 多媒體相關 例: gstream * Networking – 網路相關 ex. firefox, pidgin, ie6, skype, pcman * System - 系統相關 * Customize – 加快開機速度 * Localization- 中文化環境 ========================== 腳本資訊 (Script Metadata) ========================== 所有的腳本資訊均以註解的方式撰寫在腳本內,以標示腳本的作者、用途、版權等額外資訊。 範例:: # @name_enUS 'english script name.' # @name_zhTW '中文script名。' # @desc_enUS 'English discription. # Second line.' # @warn_enUS 'English warning.' # @desc_zhTW '中文script說明 # 第2行' # @warn_zhTW '中文警告' # @category 'Custonmize' # @maintainer '林哲瑋 Zhe-Wei Lin (billy3321,雨蒼) ' # @author '林哲瑋 Zhe-Wei Lin (billy3321,雨蒼) ' # @debian # @ubuntu # @platform 'i386 amd64' # @child 'Common/add-apt-sources Common/debinstall.py' # @hide **必須標示** * @name_[語系] : 名稱 * @desc_[語系] : 描述 * @category : 分類 * @maintaner : 維護者 * @author : 作者 * @license : 版權 **選擇標示** * @warn_[語系] : 警告 * @hide : 不顯示在Lazyscritps主程式。 * @interact : 需要使用者互動 * @debian : 支援Debian * @ubuntu : 支援Ubuntu * @platform : 支援平台 (x86, amd64) * @child : 相依腳本,需標明腳本路徑,而非腳本檔名。 例:@child 'Internet/ie6.sh Internet/after_ie6.sh'