腳本(Script)

如何撰寫腳本(Script)

寫出自己的scripts不難,你只要注意以下幾點就好。

  1. 使用scripting language來撰寫。如bash shell,perl,python 均可。
  2. 注意meta data格式。在執行時期,lazyscripts會將您執行所需要的scripts放到同一目錄。因此只要引用當前目錄即可。
  3. 變數環境。 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,雨蒼) <billy3321 -AT- gmail.com>'
# @author '林哲瑋 Zhe-Wei Lin (billy3321,雨蒼) <billy3321 -AT- gmail.com>'
# @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’