#2. 命令行解析

命令行解析

背景

POSIX shell 是一类常见的 shell 类型, sh, bash 等等都可以算作 POSIX shell

说明

对于输入的每一个命令,shell 都会将其解析为 args 用作调用,这也是被调用的进程的 argv 中的所有内容。 请模拟 shell 的解析过程,将输入的命令解析为 args 参数列表,按行输出。如果有未闭合的引号的错误,忽略这些错误。

需要处理如 '\ ', '\\', '\"' 等常见的转义字符,以及引号包含的内容,甚至需要考虑换行问题,换行前一行有 '\' 作为标记

格式

输入格式

输入包含 POSIX shell 的命令,可能多行。

输出格式

输出包含多行,每行输出 args 其中的一个参数。

样例

git clone /path/to/file
git
clone
/path/to/file
git clone 'path to file'
git
clone
path to file
"git" "c lone" \
"\"path\' to \' file\""
git
c lone
" path' to ' file"