2.3. EVMS 命令行解释器

EVMS 命令行解释器 (EVMS CLI) 为 EVMS 提供了一个命令驱动的用户界面。EVMS CLI 帮助自动化卷管理任务,并在 EVMS GUI 不可用的情况下提供交互模式。

由于 EVMS CLI 是一个解释器,它的运行方式与操作系统的命令行实用程序不同。您在 EVMS CLI 命令行上指定的选项用于控制 EVMS CLI 的运行方式。例如,命令行选项告诉 CLI 从哪里获取要解释的命令,以及 EVMS CLI 必须多久将更改保存到磁盘。调用时,EVMS CLI 会提示输入命令。

EVMS CLI 理解的卷管理命令在/usr/src/evms-2.2.0/engine2/ui/cli/grammar.ps文件中指定,该文件随 EVMS 软件包一起提供。这些命令在 EVMS 手册页中详细描述,并且可以从 EVMS CLI 内部获得关于这些命令的帮助。

2.3.1. 使用 EVMS CLI

使用 evms 命令启动 EVMS CLI。如果您没有使用选项输入 evms,EVMS CLI 将以交互模式启动。在交互模式下,EVMS CLI 会提示您输入命令。每个命令的结果都会立即保存到磁盘。当您键入exit时,EVMS CLI 退出。您可以使用以下选项与 evms 一起修改此行为

-b

此选项表示您正在以批处理模式运行,并且在任何时候出现用户输入提示时,都会自动接受默认值。这是使用 -f 选项时的默认行为。

-c

此选项仅在 EVMS CLI 退出时保存更改到磁盘,而不是在每个命令之后。

-f文件名

此选项告诉 EVMS CLI 使用文件名作为命令的来源。当 EVMS CLI 到达文件名.

-p

的末尾时,它会退出。此选项仅解析命令;它不执行它们。当与 -f 选项结合使用时,-p 选项会检测命令文件中的语法错误。

-h

此选项显示与 evms 命令一起使用的选项的帮助信息。

-rl

此选项告诉 CLI 命令行上所有剩余的项目都是替换参数,供 EVMS 命令使用。

Note注意
 

替换参数在 EVMS 命令中使用$(x)表示法访问,其中x是标识要使用的替换参数的编号。替换参数按照在命令行上遇到的顺序分配编号(从 1 开始)。替换不会在注释或带引号的字符串中进行。

一个例子是

evms -c -f testcase -rl sda sdb

sdaparameter1的替换sdb

Note注意
 

parameter2

有关不太常用的选项的信息,请参阅 EVMS 手册页。

2.3.2. 关于命令和命令文件的注意事项

EVMS CLI 允许在命令行上显示多个命令。当您在单个命令行上指定多个命令时,请使用冒号 ( : ) 分隔命令。这对于命令文件很重要,因为 EVMS CLI 将命令文件视为单个长命令行。EVMS CLI 没有文件行的概念,并且忽略空格。这些功能允许命令文件中的命令跨越多行,并使用任何方便的缩进或边距。唯一的要求是在命令之间存在命令分隔符(冒号)。

"This is a name containing ""embedded"" quote marks."

EVMS CLI 忽略空格,除非空格出现在引号内。将包含空格或其他非打印或控制字符的名称放在引号中。如果名称包含作为名称一部分的引号,则引号必须“加倍”,如下例所示

EVMS CLI 关键字不区分大小写,但 EVMS 名称区分大小写。大小可以用任何单位输入,并带有单位标签,例如 KB、MB、GB 或 TB。

/* This is a comment */
Create:Vo/*This is a silly place for a comment, but it is
allowed.*/lume,"lvm/Sample Container/My LVM
Volume",compatibility