基本shell 編程__編程

來源:互聯網
上載者:User
 if else以及大於、小於、等於邏輯運算式 if ....; then 
.... 
elif ....; then 
.... 
else 
.... 
fi [ -f "somefile" ] :判斷是否是一個檔案 
[ -x "/bin/ls" ] :判斷/bin/ls是否存在並有可執行許可權 
[ -n "$var" ] :判斷$var變數是否有值 
[ "$a" = "$b" ] :判斷$a和$b是否相等
-r file     使用者可讀為真 
-w file     使用者可寫為真 
-x file     使用者可執行為真 
-f file     檔案為正規檔案為真 
-d file     檔案為目錄為真 
-c file     檔案為字元特殊檔案為真 
-b file     檔案為塊特殊檔案為真 
-s file     檔案大小非0時為真 
-t file     當檔案描述符(預設為1)指定的裝置為終端時為真 
######################################################### 
整數比較
-eq 等於,如:if [ "$a" -eq "$b" ]
-ne 不等於,如:if [ "$a" -ne "$b" ]
-gt 大於,如:if [ "$a" -gt "$b" ]
-ge 大於等於,如:if [ "$a" -ge "$b" ]
-lt 小於,如:if [ "$a" -lt "$b" ]
-le 小於等於,如:if [ "$a" -le "$b" ]
 
< 小於(需要雙括弧),如:(("$a" < "$b"))
<= 小於等於(需要雙括弧),如:(("$a" <= "$b"))
> 大於(需要雙括弧),如:(("$a" > "$b"))
>= 大於等於(需要雙括弧),如:(("$a" >= "$b"))

  字串比較
 
= 等於,如:if [ "$a" = "$b" ]
== 等於,如:if [ "$a" == "$b" ],與=等價
 
注意: [[]]和[]中的行為在某些情況下是不同的:
 
[[ $a == z* ]]           # 如果$a 以"z"開頭(模式比對)那麼將為true
[[ $a == "z*" ]]         # 如果$a 等於z*  (字元匹配),那麼結果為true
 
[ $a == z* ]             # File globbing 和word splitting 將會發生
[ "$a" == "z*" ]        # 如果$a 等於z* (字元匹配),那麼結果為true

 



for i in {1..10}
do
   echo $i
done

#詳細列出(字元且項數不多)
for File in 1 2 3 4 5 
do 
    echo $File 
done

#對存在的檔案進行迴圈
for shname in `ls *.sh`
do 
          name=`echo "$shname" | awk -F. '{print $1}'`           
          echo $name
done

#尋找迴圈(ls資料量太大的時候也可以用這種方法)
for shname in `find . -type f -name "*.sh"`
do 
          name=`echo "$shname" | awk -F/ '{print $2}'`          
          echo $name
done

#((文法迴圈--有點像C文法,但記得雙括弧
for((i=1;i<100;i++))
do
    if((i%3==0))
    then
        echo $i
        continue
    fi
done

#seq形式 起始從1開始
for i in `seq 100`
do
    if((i%3==0))
    then
        echo $i
        continue
    fi
done

#while迴圈注意為方括弧[],且注意空格
min=1
max=100
while [ $min -le $max ]
do
    echo $min
    min=`expr $min + 1`
done  

#雙括弧形式,內部結構有點像C的文法,注意賦值:i=$(($i+1))
i=1
while(($i<100))
do
    if(($i%4==0))
    then
        echo $i
    fi
    i=$(($i+1))
done


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.