VOS で POSIX シェル ("bash") を使ったことがある人なら、さまざまな POSIX コマンドを実行したり、入力や出力のリダイレクトなど bash が提供する気の利いたトリックをすべて使うことができることを知っているでしょう。 しかし、これらと同じ特長 を多くの VOS コマンドで使用できることをご存知でしたか?
例えば、VOSの"list"コマンドとPOSIXの"more"コマンドを組み合わせたい場合は、以下のコマンドラインをbashに入力します。
リスト
listコマンドの出力をファイルに実行したい場合は、次のようにします。
リスト >list.txt
これは、VOSとPOSIXの両方が、ターミナルまたはバッチファイルに出力を書き込むために、同じアンダーリングVOSポートを使用するために動作します。 VOS の "default_output" ポートは POSIX の "stdout" ファイルと同じです。 そして、VOSの"default_input"ポートはPOSIXの"stdin"ファイルと同じです。 最後に、VOSがエラーメッセージを書き込む場所であるVOSの"terminal_output"ポートは、POSIXの"stderr"ファイルと同じです。
ここでは、VOSコマンドでbash入力リダイレクトを使用した例を紹介します。 "line_edit.txt"という名前のファイルを作成し、その中に以下の2行を入れます。
刷る 辞める
そして、以下のように省略形ファイルに対してこれらのline_editリクエストを実行することができます。
line_edit abbreviations <line_edit.txt
bash はすべてのコマンドを新しい子プロセスで実行することに注意してください。 子プロセスは親プロセスからすべての I/O アタッチメントとすべての状態を継承するので、ほとんどのコマンドでは問題ありません。 しかし、プロセス環境を変更するVOSコマンドは、期待通りにはいきません。 例えば、bash 内から set_library_paths コマンドを実行すると、子プロセスのライブラリパスが変更されます。 bash で検索されるパスを変更したい場合は、POSIX メソッドを使って変更しなければなりません。
これらのテクニックを参考にしていただければ幸いです。