我正在努力创建自己的外壳。
我为用户输入创建了一个词法分析器和一个解析器(它创建了一个二叉树)。所以对于这样的命令:cat main.c | ls | 厕所。
我得到了这棵树:
"|"
/ \
/ \
/ \
"cat main.c" "|"
/ \
/ \
"ls" "wc"
所以我的树遍历函数(按顺序)是这样的:
inorder(root)
{
inorder(root->left);
//exec cmd and do redirection
inorder(root->right);
}
我的问题是当我在节点“ls”或“wc”上时,我不知道如何检查命令前后是否有管道。
任何想法 ?