Linux中Shell指令碼的符號說明__Linux

來源:互聯網
上載者:User
#。腳步中的第一句,指明執行指令碼使用的程式
    樣本:#!/bin/bash
# 注釋,用於協助資訊或者忽略暫時不執行的語句
    樣本:# echo “hello”       
# this is a comment
$ 變數替換符號
    樣本:a=123;echo $a
${} 變數正規運算式,避免變數名提前截斷
    樣本:${13}
$num 位置參數
    樣本:$0,$1,…,${10}
$? 最後一個命令的推出狀態,一般0表示正確,其他表示錯誤
    樣本: if [ $?-ne 0 ]; then
             echo “encounter error”
          fi
$! 最後一個命令執行的後台命令的ID
    樣本:pid=$!
$$ 運行指令碼進程的ID
    樣本:pid=$$
$* 傳遞到腳步的參數,加雙引號時相當於”$1$2 …”
    樣本:echo “Theparameters are $*”
$@ 與$*相同,加雙引號相當於”$1”“$2” …
    樣本:a=$@
$# 傳遞到指令碼中的參數個數,不包含$0參數
    樣本: echo “theparameter number is $#”
$- 儲存當前shell的設定資訊,如果結果中有i,則表示為互動式shell
    樣本: echo $-
;  將多個指令寫在同一行上的分隔字元
        樣本:a=123;echo $a
;; 專用語case選項,作用類似於C語言switch語句中的break
    樣本: case${tao} in
            a)      echo “a” ;;
             b)      echo “b” ;;
          esac
. 一個表示目前的目錄,兩個表示上一級目錄
     樣本:cd ..
, 類似於C語言中的逗號運算式
     樣本:let “t1=((a=5+3,b=7-1,c=15/3))”;echo $t1
! 表示邏輯運演算法“非”
     樣本:if [ “$?”!= “0” ]; then
              echo “Execute error”
              exit 1
           fi
: 在bash中,這是一個內建命令,“什麼都不幹“,但是返回狀態值為0
         樣本: :; echo$?; :> f.out     相當於cat/dev/null > f.out
? 萬用字元,匹配任意一個字元,但是不包括null
         樣本:ls f?n
‘’ 將其內容當作字串,$和萬用字元均不擴充或者轉義
         樣本:a=1; echo ‘$a’         結果為$a
“” 將其內容作為字串,但是$可以擴充,萬用字元不可以
         樣本:b=”string”;echo “$b”   結果為string
`` 反引號(在鍵盤數字1左邊),其中的字串會當成命令執行
         樣本:a=`date`;echo “$a”
() 指令群組,將一串指令括起來,執行時shell會產生subshell來執行它們
         樣本:(a=1;echo$a)
(()) bash的內建功能,用於算數運算
         樣本:a=10;echo$a;((a++)); echo $a
[] 同test作用相同,用於運算式真假的判斷
         樣本: if [ 1-eq 2];then
                                     echo‘kill me’
                      fi
[[]] bash對[]的加強版,當中允許使用||和&&,並且可以使用Regex
         樣本:read ver
                     if [[ $ver > 5 && $ $ver < 9]]; then
                            echo“that’s it”
                     fi
{} 指令群組,類似於(),但在當前shell中執行,還可以用於字串的組合
         樣本: mkdir{userA, userB, userC} - {home, bin, data}
\<….\> Regex,匹配單詞的詞首和詞尾
         樣本: find ‘\<the\>’file
+ 加法,Regex中表示字元重複1~n次
         樣本: grep ‘10\+9’file
- 減法,標準輸入,cd命令中表示上一次的工作目錄
         樣本: expr 1 -2 + 3; tar -zxfv -; cd –
* 乘法,萬用字元,表示任何字元;一個字元重複0~n次
         樣本:let  “var=2*3”; ls zha*t; grep ‘a1[0-9]*’
** 次方運算
         樣本:let “var=2**8”
/ 除法;目錄分隔字元
         樣本:expr 10/2;cd /home/zc
% 取餘
         樣本:expr 10 %2
= 賦值;字串比較,在[]和[[]]中不同(參見==)
         樣本: a=”we”;if [ $a == ‘wee’ ]; then exit0 fi
== 字串比較,同單個等號
         樣本: a=’we’
                            if[[ $a == w* ]]; then
                                     echo“ok”
                     fi
!= 字串比較,不等於
         樣本: if [ “$a”!= “$b” ]; then …
< 字串比較,小於;輸入重新導向
         樣本: cat>test < suck.txt
<< 從標準輸入中讀取,直到分隔字元
         樣本: 110<< eof
> 輸出重新導向,檔案存在覆蓋,不存在則建立
         樣本: ls>out 2>&1
>> 輸出重新導向,檔案存在追加,不存在則建立
         樣本: ls>>out
& 後台執行工作符
         樣本: tar zcvfdata.tar.gz data >/dev/null &
&& 邏輯與,短路操作符
         樣本: cp 1.txt2.txt && rm 1.txt && echo ‘success’
| 管道操作符
         樣本: cat file| grep ‘fan’
|| 邏輯或,短路操作符
         樣本: rm 1.txt|| echo ‘fail’
~ 根目錄
         樣本: cd ~
^ Regex中匹配行的開頭
         樣本: grep ‘^home’file
\ 逸出字元,續行符號
         樣本: echo “\$A=$A\
This is the first line”;
相關文章

聯繫我們

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