歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

shell特殊符號集錦

shell中常用的特殊符號羅列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]]    () (()) || && {xx,yy,zz,...}~ ~+ ~- & \<...\> + - %= == !=                                       # 井號 (comments)  注釋字符 該句不會被執行   ~ 帳戶的 home 目錄  用戶的home目錄如:cd ~   ; 分號  連續指令符號 如:cd ~/backup ; mkdir startup ; cp ~/.* startup/.   ;; 連續分號 (Terminator)    case語句中擔任終結符    如:      case "$fop" in     help) echo "Usage: Command -help -version filename" ;;     version) echo "version 0.1" ;;      esac   . 逗號   1 .代表當前目錄 ..代表上層目錄   2 正則表達式中 .代表匹配一個字元   'string' 單引號  括住部分將被視為單一字串 特殊字符失效   "string" 雙引號  括住部分將被視為單一字串 它防止通配符擴展但允許變量擴展  如 heyyou=homeecho "$heyyou"   `command` 倒引號  括住部分為命令 命令執行   , 逗點  分割功能 如 t=$((a=5+3,b=7-1,c=15/3))或者echo "a=$a,b=$b,c=$c"   / 斜線   1 根目錄或目錄分隔號   2 除號   \ 倒斜線   1 特殊符號的作用消失   2 放在指令的最末端 表示指令連接下一行   | 管道  連結上個指令的標准輸出,做為下個指令的標准輸入。   ! 驚歎號   1 條件判斷 邏輯否 如:!=   2 規則表達式 邏輯否 如:ls a[!0-9]   : 冒號   1 內建指令:"什麼事都不干",但返回狀態值 0     : 返回狀態碼0     : > f.$$等同於cat /dev/null > f.$$     : ${HOSTNAME?} ${USER?} ${MAIL?} 檢查這些環境變數是否已設置,沒有設置的將會以標准錯   誤顯示錯誤訊息     2 環境變量分割符     PATH=$PATH:$HOME/fbin:$HOME/fperl:/usr/local/mozilla   ? 問號  匹配一個任意的字元 如:# ls a?a1   * 星號   1 在文件名擴展上用來代表任何字元   2 在運算時代表 "乘法" 如 expr 3 \* 4   3 ** 次方運算 如 let "sus=2**3"echo "   $ 錢號   1 變量代表符號   2 正則中表示行末另外 如 grep -E ".$" 或sed 's/\.$//g' 或awk '/\.$/'   ${} 變量的正規表達式   bash中${}用法:     ${parameter:-word}          parameter定義非空時,才不替換為word不賦值,否則替換但不賦值         ${parameter:=word}          parameter定義非空時,才不替換不賦值;否則替換並賦值        ${parameter:?word}          parameter若非真正的值,腳本退出      ${parameter:+word}          parameter若非真正的值,不替換不賦值;否則替換不賦值        ${parameter:offset}         parameter從第offset位向右子串     ${parameter:offset:length}  parameter從第offset位向右length長度的子串      ${#parameter}               parameter變量長度     ${parameter#word}           刪除parameter最左端匹配第一個word     ${parameter##word}          刪除parameter中從左向右能匹配的最長word     ${parameter%word}           刪除parameter最右端匹配第一個word     ${parameter%%word}          刪除parameter中從右向左能匹配的最長word         ${parameter/pattern/string} 以string替換parameter中最左端的pattern       ${parmeter//pattern/string} 以string替換所有parameter中的pattern   $[digit]  1 $0指令本身為0,  2 $1其後依此類推 引用第幾位變量但兩位數以上,則必須使用{}括住 如${12}  3 $* 則是代表所有引用變量的符號 $*將所有的引用變量視為一個整體   $@  $@代表所有引用變量 但符號 $@ 則仍舊保留每個引用變量的區段觀念     $? 狀態值  狀態值會回傳給父進程,用來檢查子進程的執行狀態   $$ 當前進程ID   () 指令群組  用括號將一串連續指令括起來稱為指令群組 如:(cd ~ ; vcgh=`pwd` ; echo $vcgh),指令群組   有一個特性 會以產生subshell來執行這組指令   (())  算數運算c=$((a+b))等同於let c=a+b等同於c=`expr $a + $b`等同於c=`echo $a + $b|bc`   {} 大括號   1 定義函數   2 字串的組合 如{userA,userB}-{home,bin}結果為userA-home, userA-bin, userB-home, userB   -bin   [] 中括號   1 在流程控制中表示判斷式 如:if [ "$?" != 0 ]   2 在正則表達式中表示"范圍"或"集合" rm -r 200[1234]    [[]]  與[]符號,基本上作用相同但允許在其中直接使用 || 與 && 邏輯等符號 如:[[ $ak > 5 && $ak    < 9 ]] && echo "ok"    || 邏輯符號  代表 or 邏輯的符號。   && 邏輯符號  代表 and 邏輯的符號。   & 後台工作  表示將該指令列放入後台中工作 如: tar cvfz data.tar.gz data > /dev/null &   \<...\> 單字邊界  規則表達式 如: grep -E '\<man\>' file   + 加號 (plus)   1 表示 "加法" 如:expr 1 + 2 + 3   2 規則表達式中用來表示"很多個"的前面字元 如: grep '10\+9' fileB109109 前面必須加上   escape 字元。   - 減號 (dash)   1 表示 "減法" 如:expr 10 - 2   2 系統指令 tar xpvf - -符號從標准輸入讀取資料。   3 cd - 回到"上一次"工作目錄。   % 除法 (Modulo)   1 表示 "除法" 如:expr 10 % 2   2 規則表達式中${parameter%word} %表示最短的 word 匹配 ${parameter%%word} %%表示最長的   word匹配    = 等號  變量賦值   == 等號  代表 "等於"    != 不等於  代表 "不等於"   ^  代表行的 "開頭"
Copyright © Linux教程網 All Rights Reserved