Help

运行外壳应用程序通常意味着用户处于受图形限制的环境中。此外,虽然我们在移动电话时代几乎始终处于连接状态,但并非始终都能访问 Web 浏览器或任何其他富 UI 应用程序(例如 PDF 查看器)。这就是外壳命令正确进行自我记录非常重要的原因,此时可使用 help 命令。

输入 help + ENTER 会列出 shell 已知的(包括 unavailable 命令)所有命令,以及它们的作用的简短描述,如下所示:

my-shell:>help
AVAILABLE COMMANDS

Built-In Commands
       exit: Exit the shell.
       help: Display help about available commands
       stacktrace: Display the full stacktrace of the last error.
       clear: Clear the shell screen.
       quit: Exit the shell.
       history: Display or save the history of previously run commands
       completion bash: Generate bash completion script
       version: Show version info
       script: Read and execute commands from a file.

键入 help <command> 会显示有关命令的更详细信息,包括可用参数、其类型、它们是否为必填项以及其他详细信息。

以下列表显示了应用于其自身的 help 命令:

my-shell:>help help
NAME
       help - Display help about available commands

SYNOPSIS
       help --command String

OPTIONS
       --command or -C String
       The command to obtain help for.
       [Optional]

帮助是模板化的,并且可以在需要时进行定制。设置位于 spring.shell.command.help,可以在其中使用 enabled 禁用命令,使用 grouping-modegroupflat 通过扁平化结构隐藏组,使用 command-template 定义用于命令帮助输出的模板,使用 commands-template 定义命令列表的输出。

如果设置了 spring.shell.command.help.grouping-mode=flat,则帮助会显示:

my-shell:>help help
AVAILABLE COMMANDS

exit: Exit the shell.
help: Display help about available commands
stacktrace: Display the full stacktrace of the last error.
clear: Clear the shell screen.
quit: Exit the shell.
history: Display or save the history of previously run commands
completion bash: Generate bash completion script
version: Show version info
script: Read and execute commands from a file.

helphelp <commmand> 的输出都使用默认实现进行了模板化,该实现可以更改。

选项 spring.shell.command.help.commands-template 默认为 classpath:template/help-commands-default.stg,并被传递 GroupsInfoModel 为模型。

选项 spring.shell.command.help.command-template 默认为 classpath:template/help-command-default.stg,并被传递 CommandInfoModel 为模型。

Table 1. GroupsInfoModel Variables
Key Description

showGroups

当启用显示组时,为 true。否则为 false。

groups

命令变量(请参阅 GroupCommandInfoModel Variables)。

commands

命令变量(请参阅 CommandInfoModel Variables)。

hasUnavailableCommands

存在不可用命令时为 true。否则为 false。

Table 2. GroupCommandInfoModel Variables
Key Description

group

如果设置,则这是组的名称。否则为空。

commands

已设置的命令。否则为空。类型是一个多值,请参阅 CommandInfoModel Variables

Table 3. CommandInfoModel Variables
Key Description

name

如果设置,则这是命令的名称。否则为 null。类型为字符串,并且包含完整的命令。

names

如果设置,则这是命令的名称。否则为 null。类型本质上是多值 name 分割。

aliases

如果设置,则这是可能的别名。类型是具有字符串的多值。

description

如果设置,则这是命令的说明。否则为 null。

parameters

已设置的参数变量。否则为空。类型是一个多值,请参阅 CommandParameterInfoModel Variables

availability

可用性变量(请参阅 CommandAvailabilityInfoModel Variables)。

Table 4. CommandParameterInfoModel Variables
Key Description

type

如果设置,则这是参数的类型。否则为 null。

arguments

如果设置,则这是自变量。否则为 null。类型是具有字符串的多值。

required

如果需要,则 true。否则,为 false。

description

如果设置,则这是参数的说明。否则为 null。

defaultValue

如果设置,则这是参数的默认值。否则为 null。

hasDefaultValue

true 如果存在 defaultValue。否则为 false。

Table 5. CommandAvailabilityInfoModel Variables
Key Description

available

true 如有。否则为 false。

reason

如果没有,则设置原因。否则,为 null。