天天看點

一臉懵逼學習Linux的Shell程式設計

1:什麼是Shell???

(1)Shell是使用者與核心進行互動操作的一種接口,目前最流行的Shell稱為bash Shell (2)Shell也是一門程式設計語言<解釋型的程式設計語言>,即shell腳本 (3)一個系統可以存在多個shell,可以通過cat /etc/shells指令檢視系統中安裝的shell,不同的shell可能支援的指令文法是不相同的

2:Shell腳本的執行方式:

(1)第一種:輸入腳本的絕對路徑或相對路徑 首先要賦予+x權限:[root@slaver7 test]# chmod +x ./hello.sh     /root/helloWorld.sh     ./helloWorld.sh 或者,不用賦予+x權限,而用解釋器解釋執行 sh  helloworld.sh (2)第二種:bash或sh +腳本     sh /root/helloWorld.sh     sh helloWorld.sh (3)第三種:在腳本的路徑前再加". "     . /root/helloWorld.sh     . ./helloWorld.sh 注意: 差別:第一種和第二種會新開一個bash,不同bash中的變量無法共享

3:Shell中的變量:

Linux Shell中的變量分為“系統變量”和“使用者自定義變量”,可以通過set指令檢視那系統變量 系統變量:$HOME、$PWD、$SHELL、$USER等等 顯示目前shell中所有變量  :    set

4:定義變量

(1)變量=值 (例如STR=abc) (2)等号兩側不能有空格 (3)變量名稱一般習慣為大寫 (4)雙引号和單引号有差別,雙引号僅将空格脫意,單引号會将所有特殊字元脫意 (5)STR="hello world"   A=9   unset A 撤銷變量 A   readonly B=2 聲明靜态的變量 B=2 ,不能 unset   export 變量名 可把變量提升為全局環境變量,可供其他shell程式使用 (6)将指令的傳回值賦給變量   A=`ls -la` 反引号,運作裡面的指令,并把結果傳回給變量A   A=$(ls -la) 等價于反引号 (7)Shell中的特殊變量   $? 表示上一個指令退出的狀态   $$ 表示目前程序編号   $0 表示目前腳本名稱   $n 表示n位置的輸入參數(n代表數字,n>=1)   $#     表示參數的個數,常用于循環   $*和$@ 都表示參數清單 (8)$*與$@差別   $* 和 $@ 都表示傳遞給函數或腳本的所有參數,不被雙引号" "包含時,都以$1  $2  … $n 的形式輸出所有參數   當它們被雙引号" "包含時,"$*" 會将所有的參數作為一個整體,以"$1 $2 … $n"的形式輸出所有參數;"$@" 會将各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數

5:運算符

格式 :expr m + n 或$((m+n)) 注意expr運算符間要有空格 例如計算(2 +3 )×4 的值 1 .分步計算

繼續閱讀