而在腳本編程的世界里,`for do`循環無疑是每一位系統管理員和開發人員不可或缺的利器
它不僅簡化了重復性任務的處理,還極大地提高了腳本的靈活性和可讀性
本文將深入探討Linux中`fordo`循環的語法、應用實例及其在系統管理和自動化任務中的巨大優勢
一、`for do`循環的基礎語法 在Linux的Shell腳本中,`for do`循環的基本語法有兩種主要形式:列表遍歷和C風格的數值迭代
1. 列表遍歷 列表遍歷是最常用的形式之一,它允許你遍歷一個字符串列表或文件列表
!/bin/bash for item in list1 list2 list3 do echo Current item: $item done 在這個例子中,`for`循環會依次將`list1`、`list2`和`list3`賦值給變量`item`,并執行`do`和`done`之間的命令
2. C風格的數值迭代 C風格的數值迭代允許你指定一個初始值、結束條件和步長,非常適合需要處理一系列數值的場合
!/bin/bash for ((i=1; i<=10; i++)) do echo Number: $i done 在這個例子中,`for`循環從1開始,每次迭代增加1,直到10為止,將當前值賦給變量`i`,并執行`do`和`done`之間的命令
二、`for do`循環的應用實例 `fordo`循環在Linux腳本編程中的應用場景廣泛,從簡單的文件處理到復雜的系統管理任務,幾乎無處不在
1. 批量重命名文件 假設你有一個目錄,里面包含多個以`.txt`結尾的文件,你想將它們全部重命名為以`.bak`結尾的備份文件
!/bin/bash for filein .txt do mv $file ${file%.txt}.bak done 這個腳本會遍歷當前目錄下所有`.txt`文件,并使用`mv`命令將它們重命名為`.bak`文件
`${file%.txt}`是一種參數擴展,用于去除文件名中的`.txt`后綴
2. 監控系統資源 系統管理員經常需要監控CPU、內存等系統資源的使用情況
使用`for do`循環,你可以輕松地每隔一段時間收集一次數據,并保存到日志文件中
!/bin/bash logfile=/var/log/system_monitor.log for ((i=1; i<=10; i++)) do timestamp=$(date +%Y-%m-%d %H:%M:%S) cpu_usage=$(top -bn1 | grep Cpu(s) | sed s- /., (【0-9.】)% id./1/ | awk{print 100 - $1%}) mem_usage=$(free -m | awk /^Mem:/{printf(%.2f%% , $3/$2 100)}) echo $timestamp - CPU Usage: $cpu_usage - Memory Usage: $mem_usage ] $logfile sleep 60 每60秒記錄一次 done 這個腳本會每隔60秒記錄一次CPU和內存的使用情況,并將結果保存到`/var/log/system_monitor.log`文件中