下面是一shell程序,仔细阅读这个程序,回答下列问题(提示:“tar rvf …”是以添加方式往文档中写) for i in `find $1 –name *.c -print` do tar rvf back.c $i 2>/dev/null done (1)程序中$i和$1的作用是什么。 (2)程序的执行结果和使用方法(假设这个文件的文件名为myfile)。 (3)程序中的“2>/dev/null”起什么作用?
时间: 2024-03-24 08:39:45 浏览: 57
详解shell中>/dev/null 2>&1到底是什么
好的,下面是针对这个Shell程序的回答:
1. $i和$1的作用是什么?
- $i是一个Shell变量,表示当前循环迭代中的文件名。
- $1是一个Shell变量,表示程序在运行时传递的第一个命令行参数,它是一个路径,用于指定要搜索的目录。
2. 程序的执行结果和使用方法(假设这个文件的文件名为myfile):
这个程序会在指定的目录中搜索所有的.c文件,并将它们添加到back.c这个文件中。在执行此程序之前,你需要创建一个名为back.c的文件,以便将.c文件添加到其中。你可以像这样使用这个程序:
```shell
$ bash myfile /path/to/search
```
其中`/path/to/search`是要搜索的目录的路径。
3. 程序中的“2>/dev/null”起什么作用?
这个程序中的“2>/dev/null”是一个I/O重定向,它将标准错误输出(stderr)重定向到空设备文件(/dev/null),以便不会显示任何错误消息。在这种情况下,如果在添加文件时发生错误,则不会显示任何错误消息,而是会忽略它们并继续执行程序。
希望这些回答能够帮助你理解这个Shell程序!
阅读全文