Linux Shell程式設計基礎

2021-06-03 05:33:36 字數 2280 閱讀 9995

簡單學習了一下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...