Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド

COMMAND アクションの実行文字列の作成

COMMAND アクションには、必ず ACTIONEXEC_STRING の 2 つのフィールドが必要です。

ACTION action_name
 {
     EXEC_STRING execution_string
 }

実行文字列は、COMMAND アクション定義の最も重要な部分です。この文字列は、[端末エミュレータ] ウィンドウで実行するコマンド行と類似の構文を使用しますが、ファイルと文字列の引き数を処理するための追加構文も含みます。

実行文字列の一般的な機能

実行文字列には、次のものが含まれます。

アクション引き数

引き数は、コマンドまたはアプリケーションを適切に実行するのに必要な情報です。たとえば、テキスト・エディタでファイルを開くのに使用できるコマンド行について考えてみます。

dtpad filename

このコマンドでは、filenamedtpad コマンドのファイル引き数です。

アプリケーションやコマンドのように、アクションは引き数を持つことができます。COMMAND アクションが使用できるデータ型は、次の 2 つです。

実行文字列でのシェルの使用

実行文字列は、シェルを介してではなく直接実行されます。しかし、実行文字列でシェルを明示的に呼び出すことができます。

たとえば、次のようになります。

EXEC_STRING				¥
 		/bin/sh -c ¥
 		'tar -tvf %(File)Arg_1% 2>&1 | ¥${PAGER:-more};¥
 		echo "¥¥n*** Select Close from the Window menu to close ***"'

実行可能ファイルの名前または絶対パス

アプリケーションが PATH 変数にリストされているディレクトリにある場合は、単純な実行可能ファイル名を使用できます。アプリケーションが他にある場合は、実行可能ファイルへの絶対パスを使用しなければなりません。

引き数を使用しないアクションの作成

コマンド行からアプリケーションを起動するのに使用する EXEC_STRING に対しても同じ構文を使用します。

ドロップされたファイルを受け取るアクションの作成

ファイル引き数に対して、次のいずれかの構文を使用します。

%Arg_n%
%(File)Arg_n%

Arg_n に指定された引き数は (デフォルトでは) ファイルと見なされるので、(File) はオプションになります。(%(String)Arg_n% 構文の使用方法については、「文字列としてのファイル引き数の解釈」を参照してください。)

この構文により、アクション・アイコンにデータ・ファイル・オブジェクトをドロップし、そのファイル引き数でアクションを起動できます。コマンド行で n 番目の引き数を置き換えます。ローカル・ファイルまたはリモート・ファイルのどちらも使用できます。

ファイル引き数を要求するアクションの作成

ファイル引き数に対して、次の構文を使用します。

%(File)"prompt"% 

この構文は、アクション・アイコンをダブルクリックしたときに、ファイル名の要求を表示するアクションを作成します。

たとえば次の実行文字列は、wc -w コマンドのファイル引き数を要求するダイアログ・ボックスを表示します。

EXEC_STRING wc -w %(File)"Count words in file:"%

ドロップされたファイルを受け取るかファイルを要求するアクションの作成

ファイル引き数に対して、次のいずれかの構文を使用します。

%Arg_n"prompt"%
%(File)Arg_n"prompt"%

この構文は、次の動作を行うアクションを作成します。

たとえば次の実行文字列は、ドロップされたファイルで lp -oraw を実行します。アイコンをダブルクリックするとアクションが起動する場合、ダイアログ・ボックスが表示され、ファイル名を要求します。

EXEC_STRING lp -oraw %Arg_1"File to print:"%

非ファイル引き数を要求するアクションの作成

非ファイル・パラメータに対して、次のいずれかの構文を使用します。

%"prompt"%
%(String)"prompt"%

引用符で囲まれたテキストは、デフォルトでは文字列データとして解釈されるので、(String) はオプションになります。この構文は、非ファイル・データを要求するダイアログ・ボックスを表示します。ファイル名を要求するときは、この構文は使用しないでください。

たとえば、次の実行文字列は xwd コマンドを実行し、各ピクセルに追加される値を要求します。

EXEC_STRING xwd -add %"Add value:"% -out %Arg_1"Filename:"%

文字列としてのファイル引き数の解釈

引き数に対して次の構文を使用します。

%(String)Arg_n%

たとえば次の実行文字列は、コマンド lp -tbanner filename を使用して、ファイル名が入っているバナーとファイルを一緒に印刷します。

EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"File to print:"%

アクションへのシェル機能の提供

次のように実行文字列にシェルを指定します。

/bin/sh -c 'command'
/bin/ksh -c 'command'
/bin/csh -c 'command'

複数のファイル引き数を処理する COMMAND アクションの作成

アクションが複数のファイル引き数を処理するには、次の 3 つの方法があります。

交換不可能な引き数を処理するアクションの作成

次の構文規約のいずれか 1 つを使用します。

交換可能なファイル引き数を処理するアクションの作成

次の構文規約のいずれか 1 つを使用します。

複数のドロップされたファイルを処理するアクションの作成

複数のドロップされたファイル引き数を受け取り、command file 1 file 2 ... という形式のコマンド行を実行するには、次の構文を使用します。

%Args%