令牌识别 shell 报价为空

token recognition shell quote empty

我正在从头开始 shell。如果我将所有标记存储在一个数组 char** 中,当引用为空时,我应该将什么放入数组 char** 的字符串中?

示例:

input>echo "" "" "" | cat -e
output>(space)(space)(space)$

如果你模仿 POSIX shell,那么每个 "" 都会标记为一个空字符串。整个管道应该标记为:

char *tokens[] = {"echo", "", "", "", "|", "cat", "-e"};