名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 終了ステータス | 属性 | 関連項目 | 注意事項
fnsearch コマンドは、指定したフィルタ式 (filter_expr) を満たす属性を持つ composite_name またはその下位のコンテキストにバインドされているオブジェクトの名前を (オプションで指定されていなければ属性と参照も) 表示します。フィルタ式はオブジェクトの属性と参照の識別子と値を含む論理式で、検索時にテストされます。
FNS の概要については、 fns(5) のマニュアルページを参照してください。
次のオプションを指定できます。
フィルタ式を満たす各オブジェクトの属性を表示します。-a オプションを指定しない場合、すべての属性が表示されます。空の ident (シェルから見ると " ") を指定すると、属性は一切表示されません。-a オプションは複数指定できます。ident の完全な構文については、「選択した属性の表示」を参照してください。
権限を持つ情報源に問い合わせて、情報を取得します。
フィルタ式を満たす各オブジェクトの参照を表示します。
検索時に、XFN リンクをたどります。
表示するオブジェクトの最大数を 指定した数 (正の整数) に制限します。デフォルトは無制限です。
検索の適用範囲を設定します。scope は次のいずれかです。
オブジェクト composite_name だけを検索します。
composite_name に直接バインドされているオブジェクトを検索します。
composite_name またはその下位コンテキストにバインドされているオブジェクトを検索します。
subtree と似ていますが、コンテキストの実装で定義されている下位コンテキストだけを検索します。
scope には o や cont などの省略形を使用できます。このオプションを指定しない場合、デフォルトの動作は -s context です。
フィルタ式を満たす各オブジェクトの参照を詳細に表示します。このオプションは -l よりも優先されます。
最も簡単な形式のフィルタ式は、属性の存在をテストするものです。このフィルタ式には属性の名前を指定するだけです。次のコマンドは、for_sale という属性を持つオブジェクトを検索します。
% fnsearch composite_name for_sale |
もう 1 つの簡単なフィルタ式は、属性の値をテストするものです。次のコマンドは、age が 17 未満 (つまり、17 歳未満) のオブジェクトを検索します。
% fnsearch composite_name "age < 17" |
文字列値を指定するときは、文字列を単一引用符で囲みます。次のコマンドは、color が red (つまり、色が赤) のオブジェクトをすべて検索します。
% fnsearch composite_name "color == 'red'" |
この例の二重引用符 ( " ) はフィルタ式の一部ではないことに注意してください。この二重引用符は、シェルが、空白文字や単一引用符を式の一部として解釈しないようにします。
論理演算子 and、or、および not を使用すると、簡潔なフィルタ式を指定できます。次に例を示します。
% fnsearch composite_name "age >= 35 and us_citizen" |
括弧を使用すると、複数のフィルタ式をグループにまとめることができます。
% fnsearch composite_name "not (make == 'olds' and year == 1973)" |
演算子の優先順位は昇順です。
or と not 関係演算子 (以下の「関係演算子」を参照) |
論理演算子 and と or は左側への結合が優先されます。
次に、属性と指定された値を比較するための関係演算子を示します。
属性値の少なくとも 1 つが指定された値と同じ場合、真になります。
いずれの属性値も指定された値と同じでない場合、真になります。
属性値の少なくとも 1 つが指定された値よりも小さい場合、真になります。
属性値の少なくとも 1 つが指定された値以下である場合、真になります。
属性値の少なくとも 1 つが指定された値よりも大きい場合、真になります。
属性値の少なくとも 1 つが指定された値以上である場合、真になります。
コンテキスト固有の近似一致基準に従って比較を行い、属性値の少なくとも 1 つが指定された値に一致する場合、真になります。
比較と順番は、テストされる属性の構文または規則に固有です。
デフォルトでは、fnsearch コマンドは、検索基準を満たす各オブジェクトの名前とすべての属性を表示します。表示される属性のリストを制限するには、-a コマンド行オプションを使用します。次の例では、オブジェクト small の属性 color と shape だけが表示されます。
% fnsearch composite_name -a color -a shape "size == 'small'" |
属性識別子の形式は、デフォルトで FN_ID_STRING (ASCII 文字列) です。OSI OID または DCE UUID の属性識別子を指定するには、それぞれ、属性名の前に -O または -U の接頭辞を付けます。
識別子の形式は FN_ID_ISO_OID_STRING (ASN.1 のドットで区切られた整数リスト文字列) です。
識別子の形式は FN_ID_DCE_UUID (文字列形式の DCE UUID) です。
次に例を示します。
% fnsearch composite_name -a -O 2.5.4.0 "shoe_size < 9" |
もう一つ例を示します。
% fnsearch composite_name -a -U 0006a446-5e97-105f-9828-8190285baa77 \ "bowling_avg > 200" |
フィルタ式の一部は、置換トークン (パーセント記号 (%) に単一の文字が続いたもの) で置き換えることができます。置換トークンの値は、printf(1) の場合と同様に、フィルタ式に続くフィルタ引数で指定します。次に、利用できる置換トークンを示します。
属性
文字列
識別子
属性値 (現時点で使用できる構文は fn_attr_syntax_ascii だけです。)
たとえば、次のコマンドを見てください。
% fnsearch composite_name "color == 'red'" |
上記のコマンドは、次のように記述することができます。
% fnsearch composite_name "%a == 'red'" color |
あるいは、次のようにも記述できます。
% fnsearch composite_name "%a == %s" color red |
置換トークンは、フィルタ引数の値が実行時に計算されるようなシェルスクリプトを書くときに使用すると便利です。
デフォルトでは、属性 (上記属性 color など) の識別子の形式は FN_ID_STRING (ASCII 文字列) です。置換トークンでは OSI OID と DCE UUID も使用できます。前述のコマンド行オプションと同様に、それぞれ、フィルタ引数の前に -O または -U の接頭辞を付けます。
識別子の形式は FN_ID_ISO_OID_STRING (ASN.1 のドットで区切られた整数リスト文字列) です。
識別子の形式は FN_ID_DCE_UUID (文字列形式の DCE UUID) です。
次に例を示します。
% fnsearch composite_name "%a -O 2.5.4.0 |
もう一つの例を示します。
% fnsearch composite_name "%a" =='red'" \ -U 0006a446-5e97-105f-9828-8190285baa77 |
ワイルドカード付き文字列は、ワイルドカード指示子と文字列の並びから構成されます。ワイルドカード指示子はアスタリスク (*) で示し、任意の文字が 0 回または複数回発生することを意味します。
ワイルドカード付き文字列は、部分文字列の照合を指定するときに使用します。次に、ワイルドカード付き文字列とその意味を説明します。
任意の文字列。
文字列 tom。
harv で始まる任意の文字列。
ing で終わる任意の文字列。
a で始まり、b で終わる任意の文字列。
jo で始まり、その後に ph という部分文字列を含み、さらにその後に ne という部分文字列を含み、er で終わる任意の文字列。
フィルタ引数として指定された文字列で始まる任意の文字列。
bix で始まり、フィルタ引数として指定された文字列で終わる任意の文字列。
拡張演算子は TRUE または FALSE を返す述語 (機能) で、フィルタ式内で他の演算子と自由に組み合わせることができます。
拡張演算を指定するには、単一引用符で囲んだ文字列 (演算名) と、その後に括弧で囲んだ引数を指定します。次に、現在定義されている 3 つの拡張演算を示します。
オブジェクトの名前が指定されたワイルドカード付き文字列に一致する場合、TRUE です。
オブジェクトの参照タイプが指定された識別子と等しい場合、TRUE です。
オブジェクトの参照内の任意のアドレスタイプが指定された識別子と等しい場合、TRUE です。
次のコマンドは、名前が bill で始まり、80 を超える属性 IQ を持つオブジェクトを検索します。
% fnsearch composite_name "'name'('bill'*) and IQ > 80" |
次に、フィルタ式の完全な文法を示します。これは、XFN 仕様で定義された文法に基づいています (FN_search_filter_t(3XFN) を参照)。
この文法では、文字数リテラルは二重引用符で囲みます。引用符自身はフィルタ式の一部ではありません。中括弧はグループ化に使用します。角括弧は任意の要素を示します。引用符で囲まれていないアスタリスク (*) は、直前の要素が 0 回または複数回発生することを示します。プラス記号 (+) は、直前の要素が 1 回または複数回発生することを示します。
[Expr]
Expr "or" Expr| Expr "and" Expr | "not" Expr | "(" Expr ")" | Attribute [RelOp Value] | Ext
"==" | "!=" | "<" | "<=" | ">" | ">=" | "~="
Char*| "%a"
Integer| WildcardedString| "%v"
"*"| String| {String "*"}+ [String] | {"*" String}+ ["*"] (that is, an alternating sequence of String and "*")
"'" Char* "'" | "%s"
"'name'(" WildcardedString ")" | "'reftype'(" Identifier ")" | "'addrtype'(" Identifier ")"
"'" Char* "'" | "%i"
an element of the Portable Character Set (ASCII) | a character in the repertoire of a string representation
次の属性については、attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWfns |
printf(1), FN_search_control_t(3XFN), FN_search_filter_t(3XFN), fn_attr_ext_search(3XFN), fn_attr_search(3XFN), attributes(5), fns(5)
空のフィルタ式は、TRUE に評価されます (すべてのオブジェクトを満たします)。
フィルタ式の任意の部分式にある識別子がオブジェクトの属性として存在しない場合、その識別子を含む最も内側にある論理式が FALSE に評価されます。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 終了ステータス | 属性 | 関連項目 | 注意事項