「FVWM中,用户函数及SHELL命令」

PipeRead command [Quiet]

使FVWM中command的输出中读取FVWM命令来执行。command由/bin/sh执行,如同你在shell中执行的那样。如果command超过一个字,则需要进行引用。该功能可以根据目录的内容构建动态菜单。如果使用了Quite关键字,则命令没有找到也不会产生信息。

如下示例:

AddToMenu HomeDirMenu

PipeRead ‘for i in $HOME/*; \

do echo “+ $i Exec xterm -e vi $i”; done’

在PipeRead在执行命令的时候,会修改光标的状态。然而,有些命令(如xwd)需要控制光标的状态,这种有PipeRead的情况下会无效。如果要禁用PipeRead修改光标状态的功能,可以使用如下FVWM命令:

BusyCursor Read off

PipRead命令会同步执行。如果你想用Exec执行某些东西,但是需要同步执行command,可以这么做:

PipeRead ‘command 1>&2’

重定向会使所有的command输出进入stderr,而不是被FVWM按序列执行的命令。如果命令可以执行则PipeRead返回1。有关返回码的含义查看Conditional Commands部分。

Read filename [quiet]

使fvwm从名为filename的文件中读取配置命令。 如果使用了关键字Quiet,则在没有找到文件的情况下不会产生任何消息。
如果filename不以斜杠(’/’)开头,则fvwm会查找用户的数据目录,然后查找系统数据目录,用户的数据目录默认为$HOME/.fvwm,可以通过设置FVWM_USERDIR环境变量来覆盖它。
如果给定的文件可以被读取,则返回1;否则返回-1(有关返回代码的含义,参阅Conditional Commands部分)。

SetEnv variable value

设置环境变量variable的值value,类似于shell的export或setenv命令。变量会被由FVWM直接产生的进程继承。该命令与FvwmM4模块结合时非常有用。如下示例:

SetEnv height HEIGHT

该命令使FvwmM4将由fvwm启动的进程可以使用$height环境变量,值为HEIGHT。如果value中包含空格,则需要对value进行引用。如果没有给出value,则会删除变量。