规则关键字和值和探测关键字和值描述的规则关键字和探测关键字可能无法完全满足您的需求。可以通过创建 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。
在以下目录中可以找到探测函数和比较函数的其他示例:
/usr/sbin/install.d/chkprobe(在安装了 Solaris 软件的系统上)
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 - |