gpt4 book ai didi

linux - 执行 ls -l |grep D | 时出现错误grep 德

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:55 28 4
gpt4 key购买 nike

我是操作系统新手,我正在尝试执行下面提到的以下命令,但无法解决它不起作用的原因。

我正在尝试执行命令

ls -l | grep D|grep De

这是我的代码 -

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

int main()
{
int fd[2];
int fd2[2];
pipe(fd);
if(!fork())
{
pipe(fd2);
if(!fork())
{
close(0);
dup(fd[0]);
close(1);
close(fd[1]);
dup2(fd2[1],fd[0]);
close(fd[0]);
execlp("grep","grep","D",NULL);
}
else
{
close(fd[0]);
dup(fd2[0]);
close(fd[1]);
execlp("grep","grep","De",NULL);
}
}

else
{
close(1);
dup(fd[1]);
close(0);
execlp("ls","ls","-l",NULL);
}
return 0;
}

请帮我执行这个命令。提前谢谢你

最佳答案

这是从 C 代码执行这些命令的更简单方法:

 #include <stdio.h>
#include <string.h>

int main ()
{
char command[50];

strcpy( command, "ls -l | grep D|grep De" );
system(command);

return(0);
}

system命令将命令指定的命令名或程序名传递给主机环境,由命令处理器执行,并在命令完成后返回。

如果您的命令将来变得过于复杂,这里是执行 shell 脚本的另一种方法:

#include <stdio.h>
#include <stdlib.h>

#define SHELLSCRIPT "\
ls -l | grep D|grep De"

int main()
{
puts("Will execute sh with the following script :");
puts(SHELLSCRIPT);
puts("Starting now:");
system(SHELLSCRIPT);
return 0;
}

#define SHELLSCRIPT 指令在 C 中用于定义一个命名常量:SHELLSCRIPT,其中包含 shell 脚本。

每行末尾的反斜杠 \ 用于在下一行中键入代码,以提高可读性。

如果您有任何疑问,请告诉我!

关于linux - 执行 ls -l |grep D | 时出现错误grep 德,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077660/

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