linux shell指令碼快速入門

來源:互聯網
上載者:User

  本文裡,通過對shell指令碼裡的變數申明、迴圈語句、條件判斷、資料疊加的總結,能解決linux日常管理的大部分指令碼

1、變數的申明:

是弱類型的語言,用name=xxx;取變數值的時候$name

 

2、條件判斷:

   if[ condition]; then

    operator;

   elif[ condition]; then

    operator;

   else

    operator;

   fi

3、迴圈:

  while[ condition]

#condition如果是用[]取代test,則有兩個[]

  do

    operator;

  done;

 

  for((i=1;i<100;i++))

  do

     operator;

  done;

 

  for var in $(seq n)

#or for var in `cat /etc/hosts`

  do

     operator;

  done;

4、使用"[]"做判斷條件注意點:

  1)、每個組件之間都要用空格隔開,如果用@代替空格,則運算式的判斷為@[@str1@==@str2@]@;

  2)、用'=='進行判斷時,兩邊的必須是字串,所以必須用""括起來,如"$name" == "want",用$name == "want"出錯,兩邊類型不同;

  3)、test判斷:

    檔案偵測: test -e filename

        test -f filename

        test -d direct

 

    檔案許可權判斷:

        test -r filename

        test -w filename

        test -x filename

 

    文檔時間:

        test file1 -nt file2;  判斷file1是否比file2新

        test file1 -ot file2;

        test file1 -et file2;判斷兩個檔案是否為同一個檔案,可用在hard link的判斷上

 

    兩整數的判斷:

        test n1 -eq n2;

        test n1 -ne n2;

        test n1 -gt n2;

        test n1 -lt n2;

        test n1 -ge n2;

        test n1 -le n2;

 

 

    字串的判斷:

      test -z string;字串是否為空白為0,如果string為空白,則為true;

      test -n string;字串是否非0

      test st1 = st2;

      test st1 != st2;

 

    多重判斷:

      -a:and,例子test -r file -a -x file;

      -o:

      !:test ! -x file:判斷file檔案是否沒有可執行許可權

 

   4)、[]判斷可以替代test進行判斷,除了2)中的字串相等要用==;

 

   5)、let "count=$count + 1";必須有"",否則出錯

5、字元運算

  i=2;

  i=$(($i*2));

6、awk:

  awk '條件類型1{動作1} 條件類型2{動作2}' filename

   

  列印file中以分號分割的第三列大於10的第一列和第4列

 

  cat file| awk 'BEGIN {FS=":"} $3 > 10 {print $1 "\t" $4}}

 

7、簡單的例子:

  看完了這些,你是否可以寫出這樣的指令碼了呢:用遞迴的思想找出給定目錄下檔案大小超過給定大小檔案的指令碼,雖然可以用find命令操作,但是還是值得動手去做的!

相關文章

聯繫我們

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