从外壳输入C++重定向 我确信这是一个简单的问题,但是在C++中创建模拟壳时,项目的一个方面我不太理解。p>

从外壳输入C++重定向 我确信这是一个简单的问题,但是在C++中创建模拟壳时,项目的一个方面我不太理解。p>,c++,linux,shell,input,io-redirection,C++,Linux,Shell,Input,Io Redirection,基本上,我们正在创建一个名为myShell的程序,通过命令./myShell调用。这将打开自定义shell,但我希望能够做到的是,使用token-c直接从命令调用外部函数 例如,命令:./myShell-cls-l将调用linuxls函数。我可以在实际调用程序后执行此操作,但不能在打开./myShell,然后键入ls-l之前执行 我不熟悉流程,希望您能提供帮助。您的代码可以等待用户输入,解释从用户处读取的命令,运行这些命令,然后返回到循环中等待用户输入,如以下伪代码: int main(int

基本上,我们正在创建一个名为myShell的程序,通过命令./myShell调用。这将打开自定义shell,但我希望能够做到的是,使用token-c直接从命令调用外部函数

例如,命令:./myShell-cls-l将调用linuxls函数。我可以在实际调用程序后执行此操作,但不能在打开./myShell,然后键入ls-l之前执行


我不熟悉流程,希望您能提供帮助。

您的代码可以等待用户输入,解释从用户处读取的命令,运行这些命令,然后返回到循环中等待用户输入,如以下伪代码:

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;
}

目前这一点太模糊了。什么是阻碍您的具体技术问题?太好了。正是我需要的。