请写一个脚本count.sh,用来统计文件的行数,要求如下。 (1)如果后面没有参数,则报错“必须跟一个文件”,然后退出脚本。 (2)如果跟的不是普通文件或是不存在的文件,则提示“必须是一个普通文件”,并退出脚本。 (3)如果脚本正常运行,输入格式如下。 行数 文件名
时间: 2024-03-05 10:48:40 浏览: 10
可以使用如下的脚本来实现要求:
```bash
#!/bin/bash
if [ $# -eq 0 ]; then
echo "必须跟一个文件"
exit 1
fi
if [ ! -f $1 ]; then
echo "必须是一个普通文件"
exit 1
fi
num=$(cat $1 | wc -l)
echo "$num $1"
```
脚本的功能是:
- 检查是否有参数,如果没有则提示错误并退出脚本。
- 检查参数是否是普通文件,如果不是则提示错误并退出脚本。
- 统计文件行数,并输出格式化的结果。
可以使用以下命令来执行该脚本:
```bash
./count.sh filename
```
其中`filename`是要统计行数的文件名。
相关问题
.编写一个 Shell 脚本,接受一个文本文件路径作为参数,统计输出该文本文件中行数、单词数
你可以使用以下的shell脚本来接受一个文本文件路径作为参数,并统计该文本文件中的行数和单词数:
```shell
#!/bin/bash
file_path=$1
# 统计行数
line_count=$(wc -l < "$file_path")
# 统计单词数
word_count=$(wc -w < "$file_path")
echo "行数: $line_count"
echo "单词数: $word_count"
```
这个脚本首先将传递给脚本的第一个参数(即文本文件路径)保存到`file_path`变量中。然后,使用`wc -l`命令统计文件的行数,并将结果保存到`line_count`变量中。接着,使用`wc -w`命令统计文件的单词数,并将结果保存到`word_count`变量中。最后,使用`echo`命令输出行数和单词数。
你可以将这个脚本保存为一个.sh文件,然后在终端中运行该脚本并指定文本文件路径作为参数,脚本将输出该文本文件中的行数和单词数。例如,假设脚本名为`count.sh`,你可以运行以下命令:
```shell
bash count.sh /path/to/text_file.txt
```
其中`/path/to/text_file.txt`是你要统计的文本文件的实际路径。脚本会输出行数和单词数。
linux下如果使用一个.sh文件调用多个.sh文件 请写出例子
假设我们有三个脚本文件:`script1.sh`、`script2.sh`、`script3.sh`,我们可以在一个 `master.sh` 文件中依次调用这三个脚本。
`master.sh` 文件内容如下:
```bash
#!/bin/bash
# 调用 script1.sh
./script1.sh
# 调用 script2.sh
./script2.sh
# 调用 script3.sh
./script3.sh
```
然后在终端中执行 `master.sh` 文件即可。
```bash
$ chmod +x master.sh # 添加可执行权限
$ ./master.sh # 执行脚本
```