On this page |
system [-s shell] [-q] command
Houdiniは、$SHELL -c command
コマンドで$SHELL変数の値を使ってコマンドを実行します。
この$SHELL
変数がcsh
またはzsh
の場合には、Houdiniはさらに-fオプション(.cshrc/.zshrcファイルのソーシングを回避)も使用します。
Houdiniは、外部プロセスにグローバルHScript変数を環境変数として渡し、status
変数には、コマンドのexitコードを設定します。
HOUDINI11_COMPATIBILITY
環境変数が設定されていれば、$SHELL
変数は無視されて、そのシェルのデフォルトがcsh
になります。
-sオプションを使用することで、HOUDINI11_COMPATIBILITY
の設定に関わらずシェルを上書きすることができます。
Tips ¶
-
Houdiniには、ディレクトリの内容をリストするuls、ファイルを削除するurm、現行ディレクトリをプリントするupwdなどの 典型的なホストシステムコマンドをコールする専用のHScriptコマンドが用意されています。
Windowsなどの非UNIXシステムでも利用可能なコードにしたいのであれば、UNIXユーティリティ(
ls
,rm
,pwd
など)を明示的にコールするのではなく、 それと同等のHScriptコマンドを使用してください。 -
外部シェルにリダイレクト(例えば
>&
)するには、その外部シェルが引数をチェックする前にHoudiniコマンドインタープリタがそのリダイレクトに作用してしまわないように 引数をシングルクォーテーションで閉じてください。system myscript.pl '>output.txt'
-
たいていの場合では、引用符で閉じられた引数を保護するために
-q
オプションを使用してください。 しかし、既存スクリプトと下位互換を持たせるために、このオプションはデフォルトで無効になっています。-q
オプションは、引用符の問題を平易にします。# HScriptは"Hello world"引数から引用符を取り除くので、このコマンドは失敗します。 system hwatermark -x 10 10 -m "Hello world" foo.pic foo.pic font.ttf 12 # -qオプションを追加することで引用符が保護されるので、"Hello world"が1個の引数としてhwatermarkに渡されます。 system -q hwatermark -x 10 10 -m "Hello world" foo.pic foo.pic font.ttf 12
オプション ¶
-q
シェルに引数を渡す時に引用符を保護します。
-s string
$SHELL
変数の値を上書きします。
See also |