how to write a shell supporting command line with arguments
How to write a shell supporting command lines with arguments, such as ls -al, cat test.txt 编写支持带参数的shell,例如ls -al,cat test.txt。要编写支持带参数的shell,需要使用系统调用execvp()函数。execvp()函数可以在当前进程中执行一个新的程序。
以下是一个示例代码:
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Usage: %s command \n", argv);
return 1;
}
execvp(argv, &argv);
perror("execvp failed");
return 1;
}
在这个示例中,我们首先检查命令行参数的数量。如果没有足够的参数,则打印出使用方法并返回1。否则,我们使用execvp()函数来执行第一个参数指定的命令,并传递剩余的参数作为命令的参数。如果execvp()函数返回,说明出现了错误,我们使用perror()函数输出错误信息,并返回1。
使用这个示例代码,我们可以执行任何命令,并传递任何参数。例如,我们可以执行ls -al命令:
$ ./myshell ls -al
我们也可以执行cat test.txt命令:
$ ./myshell cat test.txt
页:
[1]