1. 程式人生 > >合理使用for迴圈批量處理&seq命令

合理使用for迴圈批量處理&seq命令

在linux終端,我們有時候處理大量工作時,可能會遇到大量的重複工作。比如批量複製檔案,比如批量建立相似的資料夾,比如多次解壓檔案。這個時候,我們可以通過使用for迴圈,快速實現。
下面舉出幾個例子,表示使用for迴圈簡化操作
比如建立下面一系列名稱相似的資料夾

ex01 ex02 … ex09

我們可以使用操作:

for i in {1..9};do mkdir ex0$i ;done

上述for迴圈語法為

for 變數 in1,值2..;
do 程式塊;
done

在上述操作中使用了序列,還可以使用seq命令表示。
該命令的使用方法如下:

seq LAST
seq FIRST LAST
seq FIRST INCREMENT LAST

seq 產生從某一個數(FIRST)到另一個數(LAST)的數列。
沒有引數INCREMENT時,整數的預設間隔為1。

我們使用命令$(),轉化為for迴圈的物件集合。

for i in $(seq 1 9);do mkdir ex0$i ;done

我們可以使用下面的例子進行練習。使用for迴圈,列印一個乘法口訣表。
程式碼如下:


#!/bin/bash
for i in $(seq 1 9);do
 for j in $(seq 1 $i);do
   echo -ne ""$i"X"$j"="$[$i*$j]"\t"
   done
   echo
 done

最後可以得到如下的執行結果:

1X1=1
2X1=2 2X2=4
3X1=3 3X2=6 3X3=9
4X1=4 4X2=8 4X3=12 4X4=16
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49
8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64
9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81