编写个Shel脚本,该脚本能够统计指定目录 下所有. txt文件的总行数。
时间: 2024-11-05 18:29:22 浏览: 53
当然,下面是一个简单的shell脚本,用于统计指定目录下所有`.txt`文件的总行数:
```bash
#!/bin/bash
# 指定需要搜索的目录
dir="$1"
# 如果目录为空或不存在,给出提示并退出
if [ ! -d "$dir" ]; then
echo "错误:指定的目录 '$dir' 不存在或不是一个有效的目录。"
exit 1
fi
# 初始化总行数为零
total_lines=0
# 遍历目录下的所有.txt文件
for file in "$dir"/*.txt
do
# 确保文件存在并且可以读取
if [ -f "$file" ]; then
lines=$(wc -l < "$file")
# 加上当前文件的行数到总数
total_lines=$((total_lines + lines))
fi
done
# 输出结果
echo "指定目录下所有.txt文件的总行数为:$total_lines"
```
要运行此脚本,你需要提供一个目录作为参数,例如:
```sh
./script_name.sh /path/to/directory
```
这里的`script_name.sh`是你的脚本名称。
相关问题
使用test条件测试完成以下几步操作。1) 编写一个Shel 脚本,在脚本中使用关系测试运算符比较数字的大小关系。 2)编写一个Shel 脚本,在脚本中使用字符串测试运算符检查字符串是否为空符串是否相等。3)编写一个Shell脚本,在脚本中使用文件测试运算符检查文件是否存在、文件的类型、文件的权限及文件的新旧等。 编写一个Shel脚本在脚本中使用布尔运算符构造复合条件测试表达式,综合运用关系运算字符串条件测试、文件条件测试。
好的,以下是针对您的问题的回答:
1)关于使用关系测试运算符比较数字的大小关系的Shell脚本示例:
```
#!/bin/bash
num1=10
num2=20
if [ $num1 -lt $num2 ]; then
echo "num1 is less than num2"
fi
if [ $num1 -gt $num2 ]; then
echo "num1 is greater than num2"
fi
if [ $num1 -le $num2 ]; then
echo "num1 is less than or equal to num2"
fi
if [ $num1 -ge $num2 ]; then
echo "num1 is greater than or equal to num2"
fi
if [ $num1 -eq $num2 ]; then
echo "num1 is equal to num2"
fi
if [ $num1 -ne $num2 ]; then
echo "num1 is not equal to num2"
fi
```
2)关于使用字符串测试运算符检查字符串是否为空符串是否相等的Shell脚本示例:
```
#!/bin/bash
str1=""
str2="hello"
if [ -z "$str1" ]; then
echo "str1 is empty"
fi
if [ -n "$str2" ]; then
echo "str2 is not empty"
fi
if [ "$str1" = "$str2" ]; then
echo "str1 is equal to str2"
else
echo "str1 is not equal to str2"
fi
```
3)关于使用文件测试运算符检查文件是否存在、文件的类型、文件的权限及文件的新旧等的Shell脚本示例:
```
#!/bin/bash
file="/etc/passwd"
if [ -e "$file" ]; then
echo "file exists"
fi
if [ -f "$file" ]; then
echo "file is a regular file"
fi
if [ -d "$file" ]; then
echo "file is a directory"
fi
if [ -r "$file" ]; then
echo "file is readable"
fi
if [ -w "$file" ]; then
echo "file is writable"
fi
if [ -x "$file" ]; then
echo "file is executable"
fi
if [ "$file1" -nt "$file2" ]; then
echo "file1 is newer than file2"
fi
if [ "$file1" -ot "$file2" ]; then
echo "file1 is older than file2"
fi
```
4)关于使用布尔运算符构造复合条件测试表达式,综合运用关系运算字符串条件测试、文件条件测试的Shell脚本示例:
```
#!/bin/bash
file="/etc/passwd"
str="hello"
if [ -f "$file" -a -r "$file" ]; then
echo "file is a regular file and is readable"
fi
if [ -n "$str" -o "$str" = "world" ]; then
echo "str is not empty or is equal to world"
fi
```
希望这些示例能对您有所帮助!
编写 shel脚本,查看主目录
您好!感谢您的提问。以下是一个查看主目录的shell脚本示例:
```shell
#!/bin/bash
echo "Home directory: $HOME"
```
将上述代码保存为一个名为`check_home.sh`的文件,然后在终端中执行以下命令:
```shell
chmod +x check_home.sh
./check_home.sh
```
该脚本将输出主目录的路径。如果您想要了解更多关于shell脚本的知识,可以参考相关教程。
阅读全文