簡單學習了一下shell 程式設計的一些基礎知識,這裡作各總結吧。
1,變數:
shell變數分為本地變數,環境變數,位置變數和預定義變數
1)本地變數:本地變數是只能在使用者寫的shell指令碼生命週期中有效的變數,在使用者的shell退出之後,該變數就不存在了。一般的定義格式為:
local_variable_name=value(等號兩邊沒有空格) 。 讀取的時候需要用$符號
2)環境變數:相對與本地變數來說,環境變數對所有的使用者均有效,而本地變數只是對本shell有效,環境變數可以在命令列中用export variable_name=value來設定,但是這樣 設定的環境變數在使用者退出本次shell的程序之後就會無效了,因此最好是在$home/.profile中設定。
3)位置引數:該引數是向shell指令碼傳遞的引數,位置引數以空格分割開,為$0,$1,$2,$3....其中$0是shell指令碼的檔名,例如在命令列輸入以下內容:shell_scropt_name param1 param2 param3 則$0 = shell_script_name , $1=param1 , $2 = param2 , $3 = param3。
4)預定義變數:預定義變數和環境變數相似,也是在shell一開始的時候就定義了的。常見的shell預定義變數有:
$#:傳遞給指令碼的引數的個數
$*:所有位置引數的內容
$?:命令之後的返回狀態
$$ :當前程序的程序號(每個shell相當於乙個程序)
$0:當前執行的程序名
2,shell中的引號的作用(「 」(雙引號) , 『 』(單引號) , ``(反引號))
1),雙引號:關閉除$ , ``(反引號),\之外的任意字元或字串。
如:str = "nice to meet you"
echo $str 和 echo "$str"輸出是一樣的,只是因為雙引號不關閉$的功能。
2),單引號:關閉所有的符號, 比雙引號更加嚴格。
echo '$str' 輸出的是: $str 。
3),反引號:設定系統命令的輸出變數,內容將作為乙個系統的命令使用。通常用在雙引號之內。
3,條件結構。
1)整數比較
#!/bin/bash
#test
x=5y=8
if [[ $x -lt $y ]]
then
echo "$x < $y"
elif [[ $x -gt $y ]]
then
echo "$x > $y"
else
echo "$x = $y"
fi
整數比較的操作符:
-eq , -ne , -gt , -ge , -lt , -le
2),字串比較
#!/bin/bash
#test
str="ernie"
if [[ $str == "ernie" ]]
then
echo "it is ernie."
else
echo "it is not ernie."
fi
字串比較的操作符:
== , != , < , > , -z (字串為空), -n(字串非空)
3),檔案測試
#!/bin/bash
#test
thefile="test.sh"
if [ -e $thefile ] #測試檔案是否存在
then
echo "file exists."
if [ -f $thefile ] #測試檔案是否是乙個普通檔案
then
echo "regular file."
elif [ -d $thefile ] #測試檔案是不是目錄
then
echo "directory."
elif [ -h $thefile ] #測試檔案是不是符號鏈結
then
echo "symbolic link."
fielse
echo "file not exists."
fiexit
檔案測試操作符:
-e:檔案是否存在
-f :檔案是否是普通檔案
-s:檔案的長度是否為零
-d:檔案是否是目錄
-r:檔案是否是可讀 -w -x
file1 -nt file2 :檔案1是否比檔案2新。
linux shell程式設計基礎
指令碼檔案要在第一行頭部以相應的格式寫明bash的路徑,例,bin bash 將指令碼檔案作為bash的引數,交由bash直譯器執行 還可以使用shell內建命令source 執行,source和 功能相同 特殊變數 0等等 b.sh echo 1 輸出第乙個引數tom shift 1 去掉了第乙個...
Linux shell指令碼程式設計基礎
把指令碼路徑寫入 path變數。帶上路徑執行,需要執行許可權。bash bash後跟上指令碼,該方法指令碼不需要執行許可權也能執行。bash 讀入指令碼內容,通過管道符交給bash執行。當前主機遠端呼叫其他主機的指令碼。1.宣告shell型別 bin bash 2.變數 3.函式 4.主程式 在編寫...
Linux Shell指令碼程式設計基礎(1)
1.我們一般在使用linux系統的時候,都活接觸到shell指令碼的使用,例如我們經常在linux系統中使用的ls命令 cd命令等,都是衣蛾簡單而又基本的shell命令,在 linux系統中我們一般的使用如下的格式來進行shell指令碼的編寫 1 格式 bin bash echo hello wor...