Solaris 共通デスクトップ環境 プログラマーズ・ガイド

環境変数のコマンド行スイッチへの変換

アクションは 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%
}

envprint スクリプトの内容は次のとおりです。

#!/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