1
0
mirror of https://github.com/NevermindZZT/letter-shell.git synced 2025-01-21 10:02:54 +08:00

60 Commits

Author SHA1 Message Date
Letter
03432e824c 优化 变量作为参数时, 如果变量不存在, 命令直接返回; 命令组子命令允许返回值打印 2024-07-31 22:01:42 +08:00
maruolang
8bce2c5ebb 修复 README.md文档中例程错误 2024-03-11 14:53:10 +08:00
Letter
9d9cb2c5bd 新增 数组参数支持 2023-10-29 04:53:20 +00:00
Letter
1725f88d1e 移除 命令结构体填充 2023-05-27 08:23:01 +00:00
Letter
e9375840bd 新增 自定义类型解析
- 可以对自定义的数据结构定义解析器,然后使用函数签名进行参数自动解析
2023-04-22 07:50:25 +00:00
Letter
acd9dceb4e 新增 函数签名
## 函数签名

之前的版本里,如果声明的命令是 `SHELL_TYPE_CMD_FUNC`,shell 会自动进行参数的转换,但是参数转换后的类型是猜出来的,无法保证转换后的数据类型是正确的,一旦猜错了,就容易导致程序挂掉

由此,借鉴 Java 等语言的函数签名,新版也引入了函数签名的概念,在声明命令时,可以给定最终执行命令的函数的签名,shell 根据这个签名进行参数转换,使用此功能时,需要打开宏 `SHELL_USING_FUNC_SIGNATURE`

函数签名是一个字符串,通过这个字符串声明表达函数的参数类型,返回值不声明,比如一个函数`int func(int a, char *b, char c)`,它的函数签名就是 `ics`

基本类型的参数签名定义如下:

| 类型                 | 签名 |
| -------------------- | ---- |
| char(字符)           | c    |
| int/short/char(数字) | i    |
| char * (字符串)      | s    |
| pointer              | p    |

声明命令时,在最后添加一个参数 `.data.cmd.signature = "ics"` 即可,比如:

```c
void shellFuncSignatureTest(int a, char *b, char c)
{
    printf("a = %d, b = %s, c = %c\r\n", a, b, c);
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
funcSignatureTest, shellFuncSignatureTest, test function signature, .data.cmd.signature = "isc");
```
2023-04-15 16:30:44 +08:00
Letter
c4dad4c43a 更新 配置方式,可以使用一个 overlay 的头文件进行配置 2023-04-08 20:03:56 +08:00
Letter
dc0e4915fd update readme.md 2021-10-17 13:39:21 +08:00
Letter
a34f08ab6f 优化 最大历史记录设置为0s时移除相关代码 2021-06-27 12:28:28 +08:00
Letter
6b79f9a4a1 新增 双击tab快速帮助 2021-06-12 16:39:12 +08:00
Letter
663f792c60 修复 编译问题 2021-05-24 15:51:59 +08:00
Letter
bafb839586 update README.md 2021-05-22 22:18:32 +08:00
Letter
4522c026bb 修复 log工具问题
优化 x86 demo使用cmake构建
2021-05-22 21:50:35 +08:00
Letter
d8ea842719 新增 log组件适配shell锁 2021-05-09 21:24:22 +08:00
Letter
2c7ce324a6 Update README.md 2021-05-09 14:19:26 +08:00
NevermindZZT
e376b61397 防止 编译器优化 2021-05-09 13:43:59 +08:00
NevermindZZT
480223721d 更改 shell读写接口 2021-04-05 19:06:25 +08:00
Letter
38b8c7795f 增加 参数自动转换最大参数限制
修复 对错误命令使用help时会引起异常的问题
2020-11-29 14:32:48 +08:00
Letter
3fd2910540 update README.md 2020-08-24 20:12:05 +08:00
Letter
2bc0966db7 新增 字符串变量类型
移除 常量类型,改为使用变量只读属性实现
2020-08-23 17:46:05 +08:00
Letter
c46f908330 Update README.md 2020-08-02 13:10:56 +08:00
Letter
e528087d71 新增 shell尾行模式 2020-08-01 17:33:49 +08:00
Letter
b8efab542b 新增 shell伴生对象
新增 支持提示符路径修改
移除 sh命令
2020-07-25 15:04:33 +08:00
Letter
a1f0bc50c6 新增 支持未导出函数执行 2020-06-22 15:28:08 +08:00
Letter
c9509964d3 新增是否在登录后清除命令行的配置 2020-06-04 10:20:17 +08:00
Letter
85ed0caf02 新增shell信息显示控制 2020-05-26 10:13:36 +08:00
Letter
330e24681a 修复双引号修复的字符串参数中含有空格会被分割的问题
修复双引号修复的字符串参数中含有空格会被分割的问题
更新shellTools.py
2020-04-17 11:36:26 +08:00
Letter
4fa5bc9a71 新增代理函数和代理参数解析
新增代理函数和代理参数解析
使用代理参数解析解决浮点参数传递问题
2020-04-16 18:43:27 +08:00
Letter
a0fe3a8cb1 Update README.md 2020-04-10 13:35:44 +08:00
Letter
166917cbec 新增参数数量声明 2020-03-26 18:03:22 +08:00
Letter
544788ac78 Update README.md 2020-01-19 10:17:09 +08:00
Letter
ba0ae5a445 update 2020-01-19 07:22:58 +08:00
Letter
6d6cecfe01 新增命令权限打印
新增命令权限打印
支持切换用户同时输入密码
加入shell格式化输出函数
2020-01-18 16:21:02 +08:00
Letter
07932c5576 修复权限问题
修复用户可以使用无权限命令的问题
修复打印有符号数引发异常的问题
2020-01-18 11:53:16 +08:00
Letter
912bbf5851 shell 3.0 2020-01-17 17:51:32 +08:00
Letter
f3a81ebb90 Update README.md 2020-01-14 18:41:22 +08:00
Letter
b4064aabaf 修复几个问题 2020-01-14 18:39:06 +08:00
Letter
32a28c4f27 Update README.md 2019-11-30 12:28:17 +08:00
Letter
c89a4ca76e 新增shell超时自动锁定
新增shell超时自动锁定
修复未验证密码的情况下,仍能查看历史命令,使用tab查看命令表的问题
修复双击tab补全,可能在使用多shell的时候有冲突的问题
2019-11-30 12:15:29 +08:00
Letter
b3af0b44e7 修复在开启密码功能时,在未验证密码的情况下,按下Tab会显示命令列表的问题 2019-11-17 12:12:36 +08:00
Letter
8533a0d8bc Update README.md 2019-11-16 22:56:24 +08:00
Letter
2f30bd6674 优化在使用密码的情况下shell显示信息,提示符的逻辑
优化在使用密码的情况下shell显示信息,提示符的逻辑
删减部分代码
独立定义shell的提示性文本
2019-11-16 20:01:25 +08:00
redoc
90e890052d
外部调用由shellHander改为shellInput 2019-11-07 15:16:12 +08:00
redocCheng
15053adc0a 1、【增加】登录密码功能,通过cfg文件配置。 2019-11-07 15:03:03 +08:00
Letter
72a14aa538 新增shell常量 2019-08-21 18:29:23 +08:00
Letter
b7ecf3a8b4 新增shell变量,自定义组合按键 2019-08-20 18:10:07 +08:00
Letter
e79b2f9d0b 新增一个shell格式化输出函数 2019-08-16 15:47:24 +08:00
Letter
86896167aa 新增shell对象管理 2019-03-29 19:53:39 +08:00
Letter
6bad42a946 新增函数返回值打印 2019-03-14 19:49:14 +08:00
Letter
3e021d0fd6 Update README.md
增加函数定义说明
2019-03-10 12:55:39 +08:00