添加自定义 Shell 命令
本文介绍如何添加用户自定义 Shell 命令。
SylixOS 系统 Shell 命令支持用户添加自己的命令。添加方式为: 在 ttintShellSysCmd.c
中写对应的接口函数,然后在 __tshellSysCmdInit
添加 Shell 这里将用到三个系统接口,分别是:
LW_API ULONG API_TShellKeywordAdd (CPCHAR pcKeyword, PCOMMAND_START_ROUTINE pfuncCommand);
LW_API ULONG API_TShellFormatAdd (CPCHAR pcKeyword, CPCHAR pcFormat);
LW_API ULONG API_TShellHelpAdd (CPCHAR pcKeyword, CPCHAR pcFormat);
其中, API_TShellKeywordAdd
函数用来添加 Shell 命令,并将此 Shell 命令与相应的处理函数对应起来。 API_TShellFormatAdd
函数用来添加相应 Shell 命令的使用格式。 API_TShellHelpAdd
函数用来添加响应 Shell 命令的说明信息,介绍此命令要完成的相应功能。
例:添加一个 hello 的 Shell 命令。
- 在
ttinyShellSysCmd.c
文件中添加__tshellCostomCmdHello
函数。
static INT __tshellCostomCmdHello (INT iArgC, PCHAR ppcArgV[])
{
if (iArgC > 2)
{
fprintf(stderr,"argument error.\n");
return (-ERROR_TSHELL_EPARAM);
}
if (iArgC == 1) {
printf("hello SylixOS\n");
}
if (iArgC == 2) {
printf("hello %s\n", ppcArgV[1]);
}
return (0);
}
- 在
__tshellSysCmdInit
函数中添加代码。
VOID __tshellSysCmdInit (VOID)
{
API_TShellKeywordAdd("hello", __tshellCostomCmdHello);
API_TShellFormatAdd("hello", " [message]");
API_TShellHelpAdd("hello", "show hello SylixOS\n");
}
- 重新编译 Base 工程和 Bsp 工程,重启虚拟机测试是否添加成功。
[root@sylixos:/root]# help hello
show hello SylixOS
hello [message]
[root@sylixos:/root]# hello
hello SylixOS
[root@sylixos:/root]# hello world
hello world
[root@sylixos:/root]# hello sylixos world
argument error.
parameter(s) error.
[root@sylixos:/root]#
由测试得知,添加成功。