写一个linux shell脚本
时间: 2023-06-30 18:17:30 浏览: 130
好的,我来给你写一个简单的 Linux shell 脚本,它的功能是统计某个目录下的文件数量和文件夹数量:
```
#!/bin/bash
# 获取用户输入的目录路径
echo "请输入目录路径:"
read dir_path
# 统计文件夹数量
dir_num=$(ls -l $dir_path | grep "^d" | wc -l)
# 统计文件数量
file_num=$(ls -l $dir_path | grep "^-" | wc -l)
# 输出统计结果
echo "目录 $dir_path 中包含 $dir_num 个文件夹和 $file_num 个文件。"
```
脚本的具体实现过程如下:
1. 首先通过 `echo` 命令提示用户输入目录路径,并通过 `read` 命令获取用户输入的值。
2. 接着使用 `ls -l` 命令列出目录下的所有文件和文件夹,并通过 `grep` 命令筛选出文件夹和普通文件,最后通过 `wc -l` 命令统计数量。
3. 最后使用 `echo` 命令输出统计结果。
注意:在 Linux 系统中,要运行 shell 脚本需要先给脚本添加执行权限,可以使用 `chmod +x 脚本文件名` 命令来添加权限。
相关问题
帮我写一个linux shell 脚本用于定时开关任务
好的,以下是一个简单的 Linux Shell 脚本,用于定时开关任务:
```bash
#!/bin/bash
# 设置任务开关时间,这里设置每天 8:00 开始,18:00 结束
start_time="08:00"
end_time="18:00"
# 获取当前时间
now=$(date +"%H:%M")
# 判断当前时间是否在开关时间范围内
if [[ "$now" > "$start_time" && "$now" < "$end_time" ]]; then
# 如果在时间范围内,则执行开启任务的命令
# 这里以启动 Nginx 服务为例
systemctl start nginx.service
else
# 如果不在时间范围内,则执行关闭任务的命令
systemctl stop nginx.service
fi
```
在上面的脚本中,我们设置了任务开关的时间范围为每天的 8:00 到 18:00,如果当前时间在这个范围内,则执行开启任务的命令,否则执行关闭任务的命令。
你可以将上面的脚本保存为一个文件,比如 `task-switch.sh`,然后使用 `crontab` 命令来定时执行该脚本。比如,你可以使用以下命令来设置每隔一分钟执行一次该脚本:
```bash
* * * * * /bin/bash /path/to/task-switch.sh
```
这样,每隔一分钟,脚本就会根据当前时间来自动开启或关闭任务。
请帮我写一个linuxShell脚本的小游戏
好的,以下是一个简单的猜数字小游戏的 Shell 脚本,供您参考:
```bash
#!/bin/bash
echo "欢迎来到猜数字游戏!"
echo "我已经想好了一个 1 到 100 之间的整数,你有 5 次机会猜它是多少。"
# 随机生成一个 1 到 100 之间的整数
answer=$((RANDOM % 100 + 1))
for (( i=1; i<=5; i++ )); do
read -p "请猜一个数字:" guess
if [[ $guess -lt $answer ]]; then
echo "猜小了!"
elif [[ $guess -gt $answer ]]; then
echo "猜大了!"
else
echo "恭喜你,猜对了!"
exit 0
fi
done
echo "很遗憾,你没有猜对。正确答案是 $answer。"
```
运行这个脚本,就可以开始猜数字游戏了。每次运行时,脚本会随机生成一个 1 到 100 之间的整数,然后让你尝试猜它是多少。你有 5 次机会,每次猜完后脚本会告诉你猜大了还是猜小了,直到你猜中为止。如果你在 5 次机会内没有猜中,脚本会告诉你正确答案是多少。
阅读全文