Solaris 公用桌面环境:高级用户和系统管理员指南

生成 COMMAND 操作的执行字符串

COMMAND 操作至少需要两个字段-ACTIONEXEC_STRING

ACTION action_name
 {
    EXEC_STRINGexecution_string
 }

执行字符串是 COMMAND 操作定义中最重要的部分。它使用的语法与在"终端"窗口内执行的命令行相似,但包含了用于处理文件和字符串变量的附加语法。

执行字符串的一般特性

执行字符串可能包括:

"操作变量"

变量是命令或应用程序正确运行所需要的信息。例如,考虑可用于在"文本编辑器"中打开文件的命令:

dtpadfilename

在该命令中,filenamedtpad 命令的文件变量。

象应用程序和命令一样,操作也可以有变量。COMMAND 操作可以使用两种类型的数据:

在"执行字符串"中使用 shell

执行字符串不经过 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 个变量替代到命令行中。拉放文件可以是本地文件或远程文件。

实例

创建提示输入文件变量的操作

文件变量使用如下语法:

%(File) "提示"% 

该语法创建了一个操作,该操作在用户双击操作图标时显示提示输入文件名。

例如,下面的执行字符串显示对话框,提示输入 wc -w 命令的文件变量:

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

创建接受拉放文件或提示输入文件的操作

文件变量使用如下语法:

%Arg_n"提示"%

%(File)Arg_n"提示"%

该语法产生的操作:

创建提示输入非文件变量的操作

对非文件变量使用如下语法:

%"提示"%

%(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 功能

在执行字符串中指定 shell:

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

实例

创建多文件变量的 COMMAND 操作

操作有三种处理多文件变量的方法:

为不可互换变量创建操作

采用下面的语法惯例之一:

用"可交换的文件变量"来创建操作

采用下面的语法惯例之一:

实例

创建接受多重拉放文件的操作

要接受多重拉放文件变量并以下面的形式执行命令行:

command file 1 file 2 ...

使用如下语法:

%Args%

实例