Linux shell常用迴圈寫法《轉》

2021-06-16 14:43:49 字數 719 閱讀 5508

在shell用for迴圈做數字遞增的時候發現問題,特列出shell下for迴圈的幾種方法:1.

for i in `seq 1 1000000`;do

echo $i

done

用seq 1 10000000做遞增,之前用這種方法的時候沒遇到問題,因為之前的i根本就沒用到百萬(1000000),因為專案需要我這個數字遠大於百萬,發現用seq 數值到 1000000時轉換為1e+06,根本無法作為數字進行其他運算,或者將$i有效、正確的取用,遂求其他方法解決,如下

2.for((i=1;i<10000000;i++));do

echo $i

done

3.i=1

while(($i<10000000));do

echo $i

i=`expr $i + 1`

done

因為本方法呼叫expr故執行速度會比第1,第2種慢不少不過可稍作改進,將i=`expr $i + 1`改為i=$(($i+1))即可稍作速度的提公升,不過具體得看相應shell環境是否支援

4.for i in ;do

echo $i

done

其實選用哪種方法具體還是得由相應的shell環境的支援,達到預期的效果,再考慮速度方面的問題。

5.for i in (cat /zheteng/1.txt);do

ls -l $i

done

linux shell程式設計for迴圈

對變數的賦值通過在in後面直接賦值,多個賦值通過空格隔開。for 變數 in 值1 值2 值3 do命令序列 done bin bash 示例一 for i in do for j in doecho done done 示例二 for var in aaa bbb ccc do echo var當...

Linux Shell程式設計 for迴圈

1 列印數字迴圈,反引號 代表是命令被執行 bin bash for i in seq 1 15 do echo the num is i done2 求1 100的和 bin bash auto sum 1 100 expr a b sum sum 0 for i 0 i 100 i do sum...

Linux shell迴圈遍歷

有時候需要緊急處理一些excel列表中的資料,如提供一堆id列表,需要刪除對應的表,一開始的辦法是通過python pandas讀取excel,然後拼接id元祖執行sql命令 運維的同事說不用這麼麻煩,寫幾行shell指令碼就可以 先將需要的資料複製儲存到文字檔案中,統計文字行數可以用 wc l h...