我确信这是一个简单的问题,但在用C ++创建一个模拟shell时,项目的一个方面我不太明白。
基本上,我们正在创建一个名为myShell的程序,使用命令“./myShell”调用。这将打开自定义shell,但我希望能够做的是,使用令牌“-c”从命令调用外部函数。
例如,命令:“。/ myShell -c ls -l”将调用linux ls函数。一旦实际调用程序,我就可以这样做,但不是之前(即打开./myShell,然后键入ls -l“。
我对流程很陌生,任何帮助都会受到赞赏。
答案 0 :(得分:0)
您有代码等待用户输入,解释它从用户读取的命令,运行它们,然后返回等待循环中的用户输入,如此伪代码:
int main(int argc, char *argv[]) {
bool must_exit = false;
while (!must_exit) {
string input = read_user_input();
must_exit = interpret_and_run(input);
}
return 0;
}
修改你的函数以连接argv
并在进入循环之前运行它们:
int main(int argc, char *argv[]) {
bool must_exit = false;
if (argc > 2 && !strcmp(argv[1], "-c")) {
string input = concatenate(argv); // From 1 to N, not from 0 to N
must_exit = interpret_and_run(input);
}
while (!must_exit) {
string input = read_user_input();
must_exit = interpret_and_run(input);
}
return 0;
}