找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 365|回复: 1

SHELL编程For循环语句实战

[复制链接]

22

主题

21

回帖

148

积分

管理员

积分
148
发表于 2024-8-21 16:56:32 | 显示全部楼层 |阅读模式
for循环语句主要用于对某个数据域进行循环读取、对文件进行遍历,通常用于需要循环某个文件或者列表。

其语法格式以for…do开头,done结尾。语法格式如下:




  1. For  var  in  (表达式)
  2. do
  3.         语句1
  4. done
复制代码

(2)循环打印1至100数字,seq表示列出数据范围:
  1. #!/bin/bash
  2. #By author jfedu.net 2024
  3. for   i   in  `seq 1 100`
  4. do
  5.         echo  “NUM is $i”
  6. done
复制代码

(3)For循环求1-100的总和:
  1. #!/bin/bash
  2. #By author jfedu.net 2024
  3. #auto sum 1 100
  4. j=0
  5. for  ((i=1;i<=100;i++))
  6. do
  7.      j=`expr $i + $j`
  8. done
  9. echo $j
复制代码

(4)对系统日志文件进行分组打包:
  1. #!/bin/bash
  2. #By author jfedu.net 2024
  3. for   i   in  `find /var/log  -name “*.log”`
  4. do
  5.         tar  -czf  2024_log$i.tgz  $i
  6. done
复制代码

(5)For循环批量远程主机文件传输:
  1. #!/bin/bash
  2. #auto scp files for client
  3. #By author jfedu.net 2024
  4. for i in `seq 100 200`
  5. do
  6. scp -r /tmp/jfedu.txt root@192.168.1.$i:/data/webapps/www
  7. done
复制代码

(6)For循环批量远程主机执行命令:
  1. #!/bin/bash
  2. #auto scp files for client
  3. #By author jfedu.net 2024
  4. for i in `seq 100 200`
  5. do
  6.        ssh -l  root 192.168.1.$i ‘ls /tmp’
  7. done
复制代码

(7)For循环打印10秒等待提示:
  1. for ((j=0;j<=10;j++))
  2. do
  3.          echo  -ne  "\033[32m-\033[0m"
  4.          sleep 1
  5. done
  6. echo
复制代码





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

22

主题

21

回帖

148

积分

管理员

积分
148
 楼主| 发表于 2024-8-21 16:59:08 | 显示全部楼层

既然你诚信诚意的推荐了,那我就勉为其难的看看吧!京峰教育Linux论坛不走平凡路。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表