bash 循环间隔数字
时间: 2023-08-02 12:40:08 浏览: 117
你可以使用 Bash 中的 for 循环来间隔数字。例如,以下代码将从 1 到 10 每隔 2 个数字输出一次:
```
for i in {1..10..2}
do
echo $i
done
```
输出结果为:
```
1
3
5
7
9
```
其中 `{1..10..2}` 表示从 1 到 10,每隔 2 个数字输出一次。你可以根据自己的需要调整循环的起始值、结束值和间隔值。
相关问题
linux循环执行命令脚本
Linux中,如果你想让一个命令脚本循环执行,可以使用`while`, `for`, 或者`cron`定时任务等方法。以下是几种常见的方法:
1. **无限循环 (`while true`)**:
```bash
while true; do
/path/to/your/script.sh;
# 添加必要的延时,如sleep 60 (每分钟执行一次)
sleep 60;
done
```
这里,脚本会在后台持续运行,并按照指定的时间间隔(比如60秒)执行。
2. **计数循环 (`for`)**:
如果你想基于某种条件(如计数值)循环,可以使用`for`循环配合直到达到某个值为止:
```bash
for ((i=0; i<10; i++)); do
/path/to/your/script.sh;
done
```
3. **`cron`定时任务**:
Linux系统提供了一个用于定期执行任务的工具`cron`。编辑`crontab`文件(通常位于`~/.crontab`),添加类似下面的条目来每小时执行一次脚本:
```
0 * * * * /path/to/your/script.sh
```
这里的数字代表时间,`*`表示所有时间,你可以根据需要自定义。
centos7 写一个shell脚本,将当前主机IP(Shell变量配置)、CPU使用率(纯数字)、内存总量和使用量(单位GB)、硬盘总量和使用量(单位GB)使用curl json方式调用http://192.168.220.1:18181/jeecg-boot/luodiye/sendMsg(Shell变量配置),脚本每隔N秒钟执行一次(Shell变量配置),curl 超时时间为5秒,调用失败输出当前时间和错误信息到当前目录monitor_error.log日志文件(没有则创建),脚本循环调用
```bash
#!/bin/bash
# 定义变量
ip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
cpu=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -f1 -d"%")
mem_total=$(free -g | grep Mem | awk '{print $2}')
mem_used=$(free -g | grep Mem | awk '{print $3}')
disk_total=$(df -h | grep /dev/sda1 | awk '{print $2}')
disk_used=$(df -h | grep /dev/sda1 | awk '{print $3}')
url="http://192.168.220.1:18181/jeecg-boot/luodiye/sendMsg"
interval=60 # 执行间隔时间
timeout=5 # curl超时时间
while true
do
# 构造json数据
json_data="{\"ip\":\"$ip\",\"cpu\":\"$cpu\",\"mem_total\":\"$mem_total\",\"mem_used\":\"$mem_used\",\"disk_total\":\"$disk_total\",\"disk_used\":\"$disk_used\"}"
# 发送请求
result=$(curl -s -m $timeout -H "Content-Type:application/json" -d "$json_data" $url)
# 判断结果
if [ $? -ne 0 ]; then
# 记录错误日志
echo "[$(date)] curl error: $result" >> monitor_error.log
fi
# 等待
sleep $interval
done
```
这是一个示例脚本, 用于收集当前主机的IP、CPU使用率、内存总量和使用量、硬盘总量和使用量, 然后使用curl请求发送到指定的URL中, 并且每隔N秒钟(60s)执行一次,如果curl失败则记录到当前目录的monitor_error.log文件中.
请注意:
- 脚本中的IP地址、URL、间隔时间、超时时间等参数需要根据实际情况进行修改.
- 脚本中的硬盘检测是基于/dev/s
阅读全文