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

Linux Shell編程學習筆記

Linux Shell編程學習筆記   登陸Shell,用戶每次登陸系統後自動加載的Shell程序 大多數Linux系統采用 /bin/bash 作為默認登陸Shell /etc/shells 文件記錄系統支持的Shell   系統可以使用的shells,記錄在/etc/shells檔案中 cat /etc/shells echo $SHELL   /etc/passwd 每一行的最後一項數據就是用戶登錄取得的shell   編寫shell script的注意事項: 1.指令是從上而下、從左而右分析並執行 2.如果讀取到一個Enter符號,就嘗試開始執行該行命令 3.可以使用 \[Enter] 進行分行 4.# 做注釋   執行腳本 執行/home/zack/shell.sh: 1. 直接命令執行: shell.sh檔案必須要具備r,x權限 2. 以bash程序執行: bash shell.sh 或 sh shell.sh shell.sh 只要有r權限即可 3. 利用 source 來執行,在父程序中執行     特殊符號 雙引號   允許引用,\轉義 單引號   禁止引用、轉義 反撇號,或者 $()   以命令輸出進行替換     前一個命令的狀態值 $?    0為正常、非0異常     expr命令,計算表達式 如: expr 45 - 32      expr 12 /* 11     $[]表達式,算式替換 如:  echo $[45+12]       x=45;y=11;echo $[x-y]       變量遞增,遞減 let 變量名++ let 變量名-- let 變量名+=2       隨機數 echo $RANDOM echo $[RANDOM%100]     $(seq 1 100)  # seq 為 sequence(連續) 的縮寫,從1到100的連續數 seq 首數 末數 seq 首數 增量 末數       生成隨機字符串 head -n 1 /dev/urandom | md5sum | cut -b 1-8     test指令 利用test指令檢測系統上某些檔案或屬性     中括號“[]”進行判斷 如: [ "$HOME" == $"MAIL" ]      [ "$yn" == "N" -o "$yn" == "n" ]  -e 是否存在 -f 是否是文件 -d 是否是目錄 -r 讀權限read -w 寫權限write -x 執行權限excution -z 是否為空 -eq 等於 -ne 不等於 -gt 大於 -lt 小於 -ge 大於等於 -le 小於等於 ! 否         script 參數 scriptname opt1  opt2  opt3  opt4   $0       $1    $2    $3    $4 $# 參數個數 $@ 參數的全部內容       if判斷語句 if []; then   elif []; then fi   case判斷 1.以case開頭,以esac結束 2.每一個變量用雙引號括起來,以小括號")"結束 3.程序段落以";;"結束 4.用*來代表其他值     case  $變量名稱 in <==關鍵詞為 case ,還有變數前有錢字號    "第一個變量內容") <==每個變量內容建議用雙引號括起來,關鍵詞則為小括號 )  程序段  ;; <==每個類刪結尾使用兩個連續的分號來處理!    "第二個變量內容")  程序段  ;;    *) <==最後一個變量內容都會用 * 來代表所有其他值 ,不包含第一個變量內容與第二個變量內容的其他程序執行段  exit 1  ;;  esac                         在shell script 當中的 function 一定要在程序的最前面 函數名稱代表示 $0 ,而後續接的參數也是以 $1, $2... 來表示的       循環 while [ condition ]  <==中括號內的狀態就是判斷式 do  <==do 是循環的開始! 程序段落 done  <==done 是循環的結束   until [ condition ] do 程序段落 done   for var in con1 con2 con3 ... do 程序段 done   for (( 初始值; 限制值; 執行步階 )) do 程序段 done     sh [-nvx] scripts.sh 選項參數: -n  :不要執行 script,僅查詢語法的問題; -v  :在執行 sccript 前,先將 scripts 的內容輸出到屏幕上; -x  :將使用到的 script 內容顯示到屏幕上,這是很有用的參數!     可使用 sh -x script.sh 來進行程序的 debug  
Copyright © Linux教程網 All Rights Reserved