45#define SHOW_MAX_LEN CMD_MAX_LEN
47#define SHELL_PROCESS_PRIORITY_INIT 15
50#define CMD_MAX_PARAS 32
51#define CMD_KEY_LEN 16U
52#define CMD_MAX_LEN (256U + CMD_KEY_LEN)
54#define CMD_HISTORY_LEN 10
55#define CMD_MAX_PATH 256
56#define DEFAULT_SCREEN_WIDTH 80
57#define DEFAULT_SCREEN_HEIGHT 24
59#define SWITCH_QUOTES_STATUS(qu) do { \
67#define QUOTES_STATUS_CLOSE(qu) ((qu) == FALSE)
68#define QUOTES_STATUS_OPEN(qu) ((qu) == TRUE)
83 char shellBuf[SHOW_MAX_LEN];
84 char shellWorkingDirectory[PATH_MAX];
@ CMD_TYPE_STD
支持的标准命令参数输入,所有输入的字符都会通过命令解析后被传入。
@ CMD_TYPE_EX
不支持标准命令参数输入,会把用户填写的命令关键字屏蔽掉,例如:输入ls /ramfs,传入给注册函数的参数只有/ramfs,而ls命令关键字并不会被传入。
@ CMD_TYPE_SHOW
用户怎么输入就怎么显示出现,包括 \0 这些字符也都会存在
unsigned int consoleID
控制台ID
pthread_t shellEntryHandle
shell客户端任务
void * cmdKeyLink
命令链表,所有敲过的命令链表
void * cmdHistoryKeyLink
命令的历史记录链表,去重,10个
unsigned int shellBufOffset
buf偏移量
pthread_mutex_t historyMutex
操作cmdHistoryKeyLink的互斥量
void * cmdMaskKeyLink
主要用于方向键上下遍历历史命令
unsigned int shellKeyType
按键类型
pthread_mutex_t keyMutex
操作cmdKeyLink的互斥量
pthread_t shellTaskHandle
shell服务端任务