编写一个shell脚本,求[3-100]之间所有素数的和。 3. 编写一个shell 脚本,读取指定目录下的所有可读的普通文件,将这些 文件内容依次写入该目录下的total.txt文件中。
时间: 2024-10-10 10:15:36 浏览: 60
shell简单应用.docx
编写一个Shell脚本来求解[3-100]之间所有素数的和,可以采用以下步骤:
```bash
#!/bin/bash
# 定义一个函数来检查是否为素数
is_prime() {
local num=$1
if [ $num -lt 2 ]; then
return 1
fi
for ((i=2; i*i<=num; i++)); do
if [ $((num % i)) -eq 0 ]; then
return 1
fi
done
return 0
}
# 初始化总和变量
sum=0
# 遍历范围内的每个数字,如果是素数则加到总和中
for ((num=3; num<=100; num+=2)); do
if is_prime $num; then
sum=$((sum + num))
fi
done
echo "3到100之间所有素数的和为: $sum"
```
保存此脚本为`prime_sum.sh`,然后运行`chmod +x prime_sum.sh`使其可执行,最后通过`./prime_sum.sh`来执行。
另一个Shell脚本用于读取指定目录下的所有可读的普通文件并合并它们的内容:
```bash
#!/bin/bash
# 指定需要读取的目录
dir="$1"
# 如果目录不存在或不可访问,则返回错误
if [ ! -d "$dir" ] || [ ! -r "$dir" ]; then
echo "指定目录无效或不可读"
exit 1
fi
# 初始化total.txt文件,如果已存在清空内容
> total.txt
# 使用find命令遍历目录,只处理普通文本文件并追加其内容到total.txt
find "$dir" -type f -name "*.txt" -readable -exec cat {} \; >> total.txt
echo "所有文件内容已合并到$dir/total.txt"
```
这个脚本可以通过提供目录路径作为参数来运行,如`./merge_files.sh /path/to/directory`。
阅读全文