規則關鍵字和值與探測關鍵字和值中所說明的規則關鍵字和探測關鍵字,可能無法完全滿足您的需求。您可以建立 custom_probes 檔案,即可定義自己的自訂規則或探測關鍵字。
custom_probes 檔案是包含兩種類型函式的 Bourne shell 程序檔。您必須將 custom_probes 檔案儲存在 rules 檔案所在的 JumpStart 目錄中。可在 custom_probes 檔案中定義的兩類函式如下:
探測 – 收集您需要的資訊或執行實際作業,並設定您所定義的相對應環境變數 SI_。探測函式會成為探測關鍵字。
比對 – 呼叫相應的探測函式,比對探測函式的輸出,如果關鍵字符合便傳回 0,如果不符合便傳回 1。比對函式會成為規則關鍵字。
custom_probes 檔案可以包含任何有效的 Bourne shell 指令、變數或演算法。
您可以在 custom_probes 檔案中定義需要單一引數的探測函式和比對函式。當您在 rules 檔案中使用相應的自訂探測關鍵字時,將會解譯該關鍵字後的引數 (解譯成 $1)。
使用 rules 檔案中相應的自訂規則關鍵字時,會在序列中解譯引數。序列會在關鍵字之後開始,並在下一個 && 或開始程序檔之前結束 (無論哪個先開始都一樣)。
若要改善明晰度與組織性,請先在檔案的頂端定義所有的探測函式,再加上所有的比對函式。
探測函式的名稱必須以 probe_ 開頭。比對函式的名稱必須以 cmp_ 開頭。
開頭為 probe_ 的函式定義新的探測關鍵字。例如,函式 probe_tcx 可定義新的探測關鍵字 tcx。以 cmp_ 開頭的函式可定義新的規則關鍵字。例如,cmp_tcx 可定義新的規則關鍵字 tcx。
使用文字編輯程式以建立 Bourne shell 程序檔文字檔案。命名 custom_probes 檔案。
在 custom_probes 文字檔中,定義探測函式和比對函式。
您可以在 custom_probes 檔案中定義需要引數的探測函式和比對函式。當您在 rules 檔案中使用相應的自訂探測關鍵字時,關鍵字後的引數會循序解譯 (解譯為 $1、$2,以此類推)。
使用 rules 檔案中相應的自訂規則關鍵字時,會在序列中解譯引數。序列會在關鍵字之後開始,並在下一個 && 或開始程序檔之前結束 (無論哪個先開始都一樣)。
將 custom_probes 檔案儲存在 JumpStart 目錄中, rules 檔案的旁邊。
確保 root 中含有 rules 檔案,且權限已設為 644。
您可以在下列目錄中找到附加的探測函式範例與比對函式範例:
已安裝 Solaris 軟體的系統上的 /usr/sbin/install.d/chkprobe
Solaris Operating System DVD 或 Solaris Software - 1 CD 上的 /Solaris_10/Tools/Boot/usr/sbin/install.d/chkprobe
以下 custom_probes 檔案包含探測函式與比對函式,用於測試 TCX 圖形卡是否存在。
#!/bin/sh # # custom_probe script to test for the presence of a TCX graphics card. # # # PROBE FUNCTIONS # probe_tcx() { SI_TCX=`modinfo | grep tcx | nawk '{print $6}'` export SI_TCX } # # COMPARISON FUNCTIONS # cmp_tcx() { probe_tcx if [ "X${SI_TCX}" = "X${1}" ]; then return 0 else return 1 if } |
以下範例 rules 檔案將顯示先前範例中所定義的探測關鍵字 (tcx) 的用法。如果 TCX 圖形卡已安裝在系統中,並被找到,則系統會執行 profile_tcx。否則便執行 profile。
一律將偵測關鍵字置於 rules 檔案的開頭或接近開頭的地方。這個放置位置會確保已在其他依賴探測關鍵字的規則關鍵字之前讀取及執行關鍵字。
probe tcx tcx tcx - profile_tcx - any any - profile - |