1. 程式人生 > >Linux Shell程式設計之 for迴圈語句 if條件語句

Linux Shell程式設計之 for迴圈語句 if條件語句

    最近涉及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為真