[Linux]shell編程基礎/linux基礎入門

來源:互聯網
上載者:User

標籤:style   blog   color   io   使用   ar   strong   for   檔案   

聲明執行程式
#!/bin/bash

用來告訴系統使用/bin/bash 程式來執行該指令碼。譬如python 指令碼,可以這樣寫:

#!/usr/bin/python
  賦值和引用

賦值公式:

變數名=值

取一個變數的值的時候,需要在變數名前面加上$ 符號,譬如:

var="hello bash"echo $var

如果出現拼接,而且又沒有空格為分隔字元,這個時候就需要使用大括弧將變數括住,如:

num=3echo "this is the ${num}th"

其輸出結果為:this is the 3th


shell預設下是進行字串操作的。所以如果要計算的話就不能這麼使用了

var=1var=$var+1echo $var

其輸出結果為:1+1

對於數值計算的話有下面的方法

var=1let "var+=1"          # let表示數學運算var="$[$var+1]"       # $[]表示對括弧內的運算式進行數學運算,與(())感覺概念是一樣的((var++))var=$(($var+1))var="$(expr "$var" + 1)"        # expr表示整數運算var="`expr "$var" + 1`"
嫌太亂的話,建議記住(($var+1))就好了。只需要記住兩個括弧內的內容會進行計算就好了。  流程式控制制

if語句

if ...; then  ...elif ...; then  ...else   ...fi


一些常見的判斷

[ -f "file_path" ]     # 判斷檔案是否存在[ -x "file_path" ]    # 判斷檔案是否具有可執行許可權[ -n "$var" ]           # 判斷$var變數是否存在[ "$var1" = "$var2" ]    # 判斷$var1和$var2是否相等

[]用來表示條件測試。注意空格,括弧前後都需要空格。

&&和||
跟其它大部分語言一樣,&&和||的意思都是差不多的。
&&:如果第一個條件為ture則檢查第二個條件/執行第二條語句;
||:如果第一個條件為false則檢查第二個條件/執行第二條語句;
所以就可以這麼用了:

[ -r "${file_path}" ] || { echo "Cannot read ${file_path}";exit 1; }

意思是,如果檔案不可讀,則列印錯誤資訊,並退出。

case語句
case是一個用來匹配字串的運算式,不是數字哦。
case運算式

case ... in...)  ...;;esac

例子

#!/bin/bashcase "$1" in"1")  echo 1;;"2")  echo "two";;*)  echo "your input is $1";;esac



迴圈
while運算式

while ...; do  ...done

for運算式

for var in ...; do  ...done

這兩個運算式都比較簡單,沒啥需要特別說明的。我發現不同的系統之間有些差異。我發現紅帽是可以使用下面的運算式的,但是Debian卻不可以。不知道是系統版本引起還是系統本身存在差異的緣故,我沒有深究這個。

for ((i=0;i++;i<10)); do  ...done
  shell函數
function_name(){    #body of function}

函數無論對於任何語言來說都是需要最基本掌握的。Shell的函數只需要在調用之前定義就好了。跟C語言一樣,但不需要聲明,跟C語言還是有區別的。
Shell函數定義的時候不用寫形參。調用的時候按照空格隔開多個參數傳入就可以了。然後使用$1、$2、$3...這些參數來調用。
下面是一個簡單的遞迴調用例子:

#!/bin/bashrecursion(){  echo $1;  if [ "$1" -eq "0" ]; then    echo "done"  else    recursion $(($1-1))  fi}echo "start";recursion 5;
上面雖然是一個很簡單的例子,但是闡述了函數如何調用,如何傳參。

 

[Linux]shell編程基礎/linux基礎入門

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.