下面的 shell 脚本的作用是什么?

下面的 shell 脚本的作用是什么?
#!/bin/bash
echo " Enter the name of your directory. You should enter the absolute path to the directory if it is not found in the current directory!"
read location
echo $location
filecount=$( find $location –type f –name "*.txt" -size -4K)
echo $filecount

答案1

  • echo " Enter the name of your directory. You should enter the absolute path to the directory if it is not found in the current directory!"-- 打印文本
  • read location- 期望您输入一些文本并存储在变量中$location
  • echo $location- 打印变量$location
  • filecount=$(...)- 将命令的输出存储在变量中$filecount
  • find $location –type f –name "*.txt" -size -4K- 在文件夹中搜索名称以“.txt”结尾且大小的$location文件(注意:脚本有错误,应该是,小写)type f-name "*.txt"-size 4-size 4kk
  • echo $filecount- 打印结果

TL;DR 要求您提供文件夹路径,查找长度为 4 KB 的文件。并打印它们

从变量的名称来看filecount,作者可能想要获取多个文件,所以命令应该更新为:

filecount=$(find $location –type f –name "*.txt" -size 4k | wc -l)

那么,我通过了测试吗?

答案2

上面提到的脚本用于查找大小小于 4 KB 且文件名后缀为 的文件的路径名.txt

它不会处理$location包含空格等的值,因为变量扩展未加引号。此外,它将路径名存储为单个字符串,如果任何路径名包含空格或换行符等,这将使得对它们进行计数变得困难。

也可以看看:

相关内容