COMMAND动作至少需要两个字段 -ACTION 和EXEC_STRING。
ACTIONaction_name { EXEC_STRINGexecution_string }
执行字符串是COMMAND动作定义中最重要的部分。它使用的语法与在"终端"仿真器窗口内执行的 命令行相似,但包含了用于处理文件和字符串变量的附加语法。
执行字符串可以包括:
文件和非文件参数
shell 语法
可执行文件的绝对路径或名称
参数是命令或应用程序正确运行所需要的信息。例如,考虑这样一个命令行,可能会用它来在"文本编辑器" 中打开文件:
dtpad文件名
在该命令中,文件名是dtpad 命令 的文件参数。
象应用程序和命令一样,动作也可以有参数。COMMAND 动作可以使用两种类型的数据:
文件
字符串数据
执行字符串一般不经过shell就直接执行。但是,也可以明确地在执行字符串中调用shell。
例如:
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%
(File)是可选项,因为为Arg_n 提供的参数(缺省)假定为文件。(请查看"将文件参数解释成字符串",以获得% (String)Arg_n% 语法的使用方法。)
该语法使用户可以通过在动作图标上放置数据文件对象来启动以该文件为参数的动作。它取代了 命令行中第n个参数。放置文件可以是本地文件或远程文件。
下例所显示的是只适用于目录参数的动作的定义的一部分。当目录被放置在动作图标上时, 相应动作将该目录内所有有读写许可的文件列表显示出来。
ACTION List_Writable_Files { ARG_TYPE FOLDER EXEC_STRING /bin/sh -c 's -l%Arg _1% | grep rw-' ... }
文件参数使用如下语法:
%(File) "提示"%
该语法创建了一动作,该动作在用户双击动作图标时提示输入文件名。
例如,下列执行字符串显示对话框,提示输入wc-w命令的文件参数:
EXEC_STRING wc -w% (File)"Count words in file:"%
文件参数使用如下语法:
%Arg_n"提示"%
或
%(File)Arg_n"提示"%
该语法产生的动作:
接受放置文件作为文件参数。
用户双击动作图标时显示对话框,提示输入文件名。
例如,下列执行字符串对放置文件进行lp-oraw操 作。如果动作由双击图标启动,则出现对话框提示输入文件名。
EXEC_STRING lp -oraw%Arg _1"File to print:"%
对非文件参数使用如下语法:
%"提示"%
或
%(String) "提示"%
由于缺省情况下,引号内的文本被解释为字符串,所以 (String)是 可选项。该语法显示对话框,提示输入非文件数据;如果提示输入文件名就不能用该语法。
例如,下列执行字符串运行xwd命令,并提示输入每个象素要增加的值:
EXEC_STRING xwd -add% "增加值:"% -out%Arg _1"文件名:"%
参数使用如下语法:
%(String)Arg_n%
例如,下列执行字符串用于打印文件,并具有包含文件名的标识,所用命令为lp-t标识文件名。
EXEC_STRING lp -t%(String)Arg_1%% (File)Arg_1"File to print:"%
在执行字符串中指定shell:
/bin/sh -c 'command' /bin/ksh -c 'command' /bin/csh -c 'command'
下列执行字符串要求参数为压缩文件。该动作将文件解压缩,并用lp-oraw命令打印文件。
EXEC_STRING /bin/sh -c 'cat%Arg _1 "File to print:"% | \ uncompress | lp -oraw'
动作有三种处理多文件参数的方法:
该动作可以重复执行,每一参数重复一次。当EXEC_STRING 包含单个文件参数,而且通过在动作图标上放置多个文件来提供多文件参数时, 该动作则对每个文件参数分别运行。
例如,如果为下列动作定义提供多文件参数,则:
ACTION DisplayScreenImage { EXEC_STRING xwud -in%Arg _1% ... }
DisplayScreenImage 动作被重复运行。
采用下列语法惯例之一:
如果需要动作来提示输入文件名,则每个文件参数均使用如下语法:
%(File) "提示"%
对每个参数使用不同的提示字符串。
例如,下列执行字符串提示输入两个文件。
EXEC_STRING xsetroot -cursor% (File)"Cursor bitmap:"% \ %(File)"Mask bitmap:"%
采用下列语法惯例之一:
如要创建接受多重放置文件,或在双击时提示输入单个文件的动作,文件参数使用如下语法:
%Arg_1"提示"%%Args%
此时动作采用如下形式来发布命令:command file 1file 2...。
要接受多重放置文件并以下列形式执行命令行:
commandfile 1file 2...
使用如下语法:
%Args%
该执行字符串对多个文件执行名为 Checkout 的脚本:
EXEC_STRING /usr/local/bin/Checkout \ %Arg_1"Check out what file?"%%Args%