同步操作将从 OpenHarmony/docs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
新增Shell命令的典型开发流程如下:
包含如下头文件:
#include "shell.h"
#include "shcmd.h"
注册命令。用户可以选择静态注册命令方式和系统运行时动态注册命令方式,静态注册命令方式一般用在系统常用命令注册,动态注册命令方式一般用在用户命令注册。
静态注册命令方式:
通过宏的方式注册。
这个宏的原型为:
SHELLCMD_ENTRY(l, cmdType, cmdKey, paraNum, cmdHook)
表 1 SHELLCMD_ENTRY参数详解
如:SHELLCMD_ENTRY(ls_shellcmd, CMD_TYPE_EX, "ls", XARGS, (CMD_CBK_FUNC)osShellCmdLs)
在build/mk/liteos_tables_ldflags.mk中添加相应选项:
如:上述“ls”命令注册时,需在build/mk/liteos_tables_ldflags.mk中添加“-uls_shellcmd”。其中-u后面跟SHELLCMD_ENTRY的第一个参数。
动态注册命令方式:
注册函数原型:
UINT32 osCmdReg(CmdT ype cmdType, CHAR *cmdKey, UINT32 paraNum, CmdCallBackFunc cmdProc)
表 2 UINT32 osCmdReg参数详解
如:osCmdReg(CMD_TYPE_EX, "ls", XARGS, (CMD_CBK_FUNC)osShellCmdLs)
说明: 命令关键字必须是唯一的,也即两个不同的命令项不能拥有相同的命令关键字,否则只会执行其中一个。 Shell在执行用户命令时,如果存在多个命令关键字相同的命令,只会执行其中在"help"命令中排序在最前面的一个。
添加内置命令函数原型。
UINT32 osShellCmdLs(UINT32 argc, CHAR **argv)
表 3 osShellCmdLs参数说明
输入Shell命令,有两种输入方式:
在串口工具中直接输入Shell命令。
在telnet工具中输入Shell命令(telnet使用方式详见telnet)。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。