アクションは 4 つの環境変数を参照できないが、対応するコマンド行オプションをとることができる場合について、この項では、環境変数をコマンド行オプションに変換する方法を説明します。
たとえば、次の例は LPDEST を参照する簡単な印刷アクションです。
ACTION Print { ARG_TYPE data_type EXEC_STRING print_command -d $LPDEST -file %(file)Arg_1% }
ただし、この印刷アクションは、LPDEST が設定されていない場合には予測できない動作をすることがあります。
変数が設定されていないときに適切な動作を提供する印刷アクションを作成するための 1 つの方法は、印刷アクションが使うシェル・スクリプトを作成することです。
たとえば、次のアクションとそれが使用するスクリプトは、4 つの環境変数すべてを正しく処理します。
ACTION Print { ARG_TYPE data_type EXEC_STRING app_root/bin/envprint %(File)Arg_1% }
#!/bin/sh # envprint - sample print script DEST="" USERFILENAME="" REMOVE="" SILENT="" if [ $LPDEST ] ; then DEST="-d $LPDEST" fi if [ $DTPRINTUSERFILENAME ] ; then USERFILENAME="-u $DTPRINTUSERFILENAME" fi DTPRINTFILEREMOVE=echo $DTPRINTFILEREMOVE | tr "[:upper:]" "[:lower:]"` if [ "$DTPRINTFILEREMOVE" = "true" ] ; then REMOVE="-e" fi DTPRINTSILENT=`echo $DTPRINTSILENT | tr "[:upper:]" "[:lower:]"` if [ "$DTPRINTSILENT" = "true" ] ; then SILENT="-s" fi print_command $DEST $USERFILENAME $REMOVE $SILENT -file $1