添加自定义 Shell 命令

更新时间:
2024-01-09
下载文档

添加自定义 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 命令。

  1. 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);
}
  1. __tshellSysCmdInit 函数中添加代码。
VOID  __tshellSysCmdInit (VOID)
{
    API_TShellKeywordAdd("hello", __tshellCostomCmdHello);
    API_TShellFormatAdd("hello", " [message]");
    API_TShellHelpAdd("hello", "show hello SylixOS\n");
}
  1. 重新编译 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]#

由测试得知,添加成功。

文档内容是否对您有所帮助?
有帮助
没帮助