采用两个命令行参数,第一个是目录名称,第二个是以字节为单位的文件大小。将您的 shell 脚本命名为“listfiles”。 Ø shell 提示符下的调用应类似于“$ listfiles /tmp 50”。 Ø 首先,你的shell脚本应该检查是否只传递了两个参数。 Ø 然后你的shell脚本应该检查第一个参数实际上是一个目录。 Ø 你的shell脚本应该列出你有读权限的目录中所有小于给定大小的常规文件。
答案1
由于这是作业,我只会给出提示:
- 传递给脚本的参数将可用为
$1
和$2
(等等以获取更多参数)。 $#
将是传递的参数数量。- 该
[ -d "dir" ]
测试将测试是否dir
是一个目录。 find . -type f -size -50
将找到所有常规文件当前的.
大小小于 50 字节的目录 ( )。
一个简单的第一次开始:
#!/bin/sh
echo "There are $# arguments passed, the first two are '$1' and '$2'"
您应该能够通过阅读本网站上的相关问题和答案,或者使用命令man
阅读您正在使用的 shell 的手册(例如man bash
)来阅读其余内容。您bash
还可以使用该命令help test
来阅读有关-d
测试以及如何比较数字的信息。
find
man find
本网站的问题中对此进行了记录并广泛引用。
您还应该查阅与您正在学习的课程相关的任何学习材料。
这个问题可能会作为您之前问题的重复而被关闭。如果您还有其他问题,请提出具体的以及您在解决问题时遇到的特定问题。
一个好的问题包含对问题的解释、您正在使用的代码、执行代码的方式、您看到的任何实际错误消息和/或警告消息,以及您期望代码执行的操作。也可以看看“如何提出一个好问题?”和“我应该避免问哪些类型的问题?在里面帮助中心。
我们很乐意为您提供帮助,但我们不会为您编写脚本。