gpt4 book ai didi

c - 需要帮助将命令行 ";"选项实现到 C-Shell 脚本中

转载 作者:行者123 更新时间:2023-11-30 17:26:58 25 4
gpt4 key购买 nike

我目前正在用 C 语言编写一个 shell 程序。我已经掌握了大部分基础知识,但我似乎不知道如何获取“;”正常工作,也就是说,当我在 shell 运行时键入“command1 ; command2”之类的内容时,它会执行第一个命令,然后执行第二个命令。目前,它基本上具有与“|”相同的功能。命令。这是我的“;”的代码命令部分:

char* cmd = line;
char* also = strchr(cmd, ';'); /* Finds first ';'*/
char* next = strchr(cmd, '|'); /* Find first '|' */

while (also != NULL){
/* 'also' points to ';' */
*also = '\0';
input = go(cmd, input, first, 0);

cmd = also + 1;
also = strchr(cmd, ';'); /* Find next ';' */
first = 0;
}

`

有人对我如何使其正常工作有任何建议吗?提前致谢!

最佳答案

您的代码的问题是,当您输入 command1 ; command2 你将执行 command1,但由于你正在寻找另一个 ; command2 将永远不会被执行,因为将设置为null。带有 command1 的输入; command2 ; 将会被执行。

您想要做的是查找 ;'\n'(如果来自标准输入),或者 \n#EOF(如果您正在从文件中读取)。因此,您需要在这一行进行更改:

also = strchr(cmd, ';');

祝你好运。

关于c - 需要帮助将命令行 ";"选项实现到 C-Shell 脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26569948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com