合理使用for迴圈批量處理&seq命令
阿新 • • 發佈:2019-02-06
在linux終端,我們有時候處理大量工作時,可能會遇到大量的重複工作。比如批量複製檔案,比如批量建立相似的資料夾,比如多次解壓檔案。這個時候,我們可以通過使用for迴圈,快速實現。
下面舉出幾個例子,表示使用for迴圈簡化操作
比如建立下面一系列名稱相似的資料夾
ex01 ex02 … ex09
我們可以使用操作:
for i in {1..9};do mkdir ex0$i ;done |
上述for迴圈語法為
for 變數 in 值1,值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 |