nsswitch.confファイルの状態メッセージと動作オプションの組み合わせによって、関数の各ステップでの動作が決まります。この状態と動作の組み合わせのことを、「検索基準」と呼びます。
スイッチのデフォルト検索規準は、どのソースについても同じです。これらを上記の状態メッセージに基づいて説明すれば次のようになります。
SUCCESS=return
UNAVAIL=continue
次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。次のソースがなければ、NOTFOUND という状態メッセージを返す
NOTFOUND=continue
次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。次のソースがなければ、NOTFOUND という状態メッセージを返す
TRYAGAIN=continue
次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。次のソースがなければ、NOTFOUND という状態メッセージを返す
これらはデフォルトの検索基準であるため、自動的に表示されます。つまり、スイッチファイルで、はっきりと指定する必要はありません。ほかの検索基準を明示してデフォルトの検索基準を変更するには、上記の STATUS=action という構文を使用します。たとえば、NOTFOUND 状態に対し、デフォルトの動作では次のソースに移って検索を続行します。networks など、特定の情報を設定して検索すると、検索は NOTFOUND で中止します。スイッチファイルの networks の行を、以下のように編集してください。
networks: nis [NOTFOUND=return] files
networks: nis [NOTFOUND=return] files は、NOTFOUND に関してデフォルトでない検索基準を設定するものです (デフォルト以外の設定をするときは [ ] を使用します)。
この例では、検索関数は以下のような働きをします。
networks
マップが見つかり、必要な情報があった場合、関数は SUCCESS という状態メッセージを返します。
networks
マップが見つからなかった場合、関数は UNAVAIL という状態メッセージを返し、デフォルトにより適当な /etc ファイルの検索を続行します。
networks
マップは見つかったが必要な情報がなかった場合、関数は NOTFOUND という状態メッセージを返します。そして /etc ファイルの検索を続行する (デフォルトの設定) 代わりに検索を停止します。
networks
マップが使用中の場合、関数は TRYAGAIN という状態メッセージを返し、デフォルトで適当な /etc ファイルの検索を続行します。