Linux Shell程式設計之 for迴圈語句 if條件語句
阿新 • • 發佈:2019-01-09
最近涉及Linux Shell程式設計,還不太熟悉,對於賦值語句,數值計算,迴圈語句,變數使用都不太熟悉。我不打算一個一個的說明知識點,我打算用最多3個例子說明所有的這些知識點。
Example 1 :
<span style="font-size:14px;">#!/bin/bash # calculate sum = 1^2 + 2^2 + 3^2 +...+ 100^2 sum=0; #tmp is temporary variable tmp=0; # for loops i=1; for((i=1;i<=100;i++)) do let "tmp=$i*$i"; let "sum+=$tmp"; done echo "Result:$sum";</span>
輸出結果:
Result:338350
Example2:
<span style="font-size:14px;">#!/bin/bash # 先執行 ls *.txt , 顯示當前目錄下所有的txt檔案,然後將結果賦值給 files 變數 , 注意,shell自定義變數的賦值不需要 $files ,直接用 files=`ls *.txt`; # for loops #遍歷所有的 txt 檔名 for file in $files do echo "File name:$file"; echo "File content:`cat $file`"; done</span>
第三個例子融合了 if條件語句 和 for迴圈語句。
Example 3:
<span style="font-size:14px;">#!/bin/bash prefix="./" #FOR LOOPS i=1 directory=4 for((i=1;i<=200;i++)) do if [ $i -lt 10 ]; then directory=${prefix}00$i; elif [ $i -lt 100 ]; then directory=${prefix}0$i; else directory=${prefix}$i; fi echo $directory; done</span>
補充說明:
if 與[ 之間必須有空格
[ ]與判斷條件之間也必須有空格
]與; 之間不能有空格
int1 -eq int2 兩數相等為真int1 -ne int2 兩數不等為真
int1 -gt int2 int1大於int2為真
int1 -ge int2 int1大於等於int2為真
int1 -lt int2 int1小於int2為真
int1 -le int2 int1小於等於int2為真