execvp实现shell脚本,arg[1] :ls arg[2]: -l arg[3] \n
时间: 2023-09-20 14:07:05 浏览: 28
好的,您可以使用以下代码来实现:
```
#include <stdio.h>
#include <unistd.h>
int main() {
char *args[] = {"ls", "-l", NULL};
execvp("ls", args);
return 0;
}
```
上述代码中,我们首先声明了一个字符串数组 args,其中 args[0] 为 "ls",args[1] 为 "-l",args[2] 为 NULL。接着使用 execvp 函数来执行 ls 命令,第一个参数为命令名,第二个参数为参数数组。由于 execvp 函数执行成功后不会返回,所以我们在函数后面加了一个 return 0 语句。
如果您想在命令行中运行该程序,可以执行以下命令:
```
gcc -o execvp_demo execvp_demo.c
./execvp_demo
```
运行后,您应该会看到当前目录下的文件列表以及详细信息。
相关问题
execvp实现arg[1] :ls arg[2]: -l arg[3] \n,写一个shell脚本
好的,以下是一个使用`execvp`函数实现的简单shell脚本,它将执行`ls -l`命令并在终端中输出结果:
```bash
#!/bin/bash
args=("$@")
execvp ls "${args[@]}"
```
将以上代码保存为`shell.sh`文件,然后在终端中使用以下命令给该脚本添加执行权限:
```
$ chmod +x shell.sh
```
接着使用以下命令运行该脚本并传递参数:
```
$ ./shell.sh -l
```
程序将执行`ls -l`命令并在终端中输出结果。
编写一个shell脚本,使用execvp 实现arg[1] :ls arg[2]: -l arg[3] \n
好的,您可以编写一个名为 `myls.sh` 的 shell 脚本文件,内容如下:
```
#!/bin/bash
args=("ls" "-l")
execvp "ls" args
```
上述代码中,我们首先声明了一个数组 args,其中 args[0] 为 "ls",args[1] 为 "-l"。接着使用 execvp 函数来执行 ls 命令,第一个参数为命令名,第二个参数为参数数组。
接下来,需要给脚本文件添加可执行权限,可以执行以下命令:
```
chmod +x myls.sh
```
最后,您可以在命令行中运行该脚本,执行以下命令:
```
./myls.sh
```
运行后,您应该会看到当前目录下的文件列表以及详细信息。
阅读全文