Shell指令碼知識點積累

2021-10-08 05:17:36 字數 3719 閱讀 5262

str="aaaaaaaaaaaaaa=bbbbbbb"

;str1=$ #匹配第乙個,進行擷取

echo

"new str1=$str1"

str2=$ #匹配最後乙個,進行擷取

echo

"new str2=$str2"

str="aaaaaaaaa=---cc---"

;str1=$

#匹配第乙個,進行擷取

echo

"new str1=$str"

str2=$

#匹配最後乙個,進行擷取

echo

"new str2=$str"

語法:$

test="login.fracong.com"

echo $

結果:fracong

說明:如果不寫length則擷取到最後位置。

語法:$

test="login.fracong.com"

echo $

#從右邊往左數11為開始,然後往右計數獲取7位,其中0-為固定寫法

結果:fracong

說明:如果不寫length則擷取到最後位置。

使用typeset,有兩個選項 -l 代表小寫 -u 代表大寫。用法:

typeset -u name

name='asdasdas'

echo

$name

typeset -l ame

ame='asdasdas'

echo

$ame

if

[ condition1 ]

;then

#action1...

elif test condition;then

#action2....

elif [

[ condition3 ]

];then

#action3....

else

#action3...

fi

重點說明*:

中括號內兩端必須要有空格

、test condition二者是等價的,更加強大。

-a表示and;-o表示or;!表示非

test="a"if[

$test = "a"

-a $test = "a"

]; then

echo

"test a"

;else

echo

"test other";fi

if[$test = "a"

-o $test = "a"

]; then

echo

"test a"

;else

echo

"test other";fi

if[!$test = "b"

]; then

echo

"test a"

;else

echo

"test other"

;fi

結果為:

test other

test a

test a

-eq 測試兩個整數是否相等

-ne 測試兩個整數是否不等

-gt 測試乙個數是否大於另乙個數

-lt 測試乙個數是否小於另乙個數

-ge 大於或等於

-le 小於或等於

test="a"if[

$test = "a"

] && [

$test = "a"

]; then #邏輯與

echo

"test a"

;else

echo

"test other";fi

if[$test = "a"]|

|[$test = "a"

]; then #邏輯或

echo

"test a"

;else

echo

"test other"

;fi

== 等於  兩邊要有空格

!= 不等

> 大於

< 小於

-z string 測試指定字元是否為空,空著真,非空為假

-n string 測試指定字串是否為不空,空為假 非空為真

-e file 測試檔案是否存在

-f file 測試檔案是否為普通檔案

-d file 測試指定路徑是否為目錄

-r file 測試檔案對當前使用者是否可讀

-w file 測試檔案對當前使用者是否可寫

-x file 測試檔案對當前使用者是都可執行

-z 是否為空 為空則為真

-a 是否不空

-s file 判斷資料夾是否為空

test=""if[

-z "$test"

];then #判斷'test'的值是否為空值,為空值則為真。

read -p "please input your test:" test #獲取鍵盤輸入的資料

echo

"test:$test"

#在控制台輸出

fi

if[!

-f /home/fracong/test.sh ]

; then

echo create test.sh

touch /home/fracong/test.sh

fi

test=""if[

-f "/home/fracong/test.sh"

];then

test=`grep "export test="

/home/fracong/test.sh`

test=$ #獲取=號右側資料

echo

"the test:$test"

fi

test="aaaaaa"if[

-z "$test"

];then

echo

"export test=$test" >>/home/fracong/test.sh

fi

test="aaaaaa"if[

-z "$test"

];then

sed -i "/^.*test=.*$/cexport test=$test"

/home/fracong/test.sh

fi

關於sed的簡單說明:

exit 0:正常執行程式並退出程式;

exit 1:非正常執行導致退出程式;

0代表正常推出,非0代表非正常推出。

shell指令碼知識點彙總

sed中在對內容進行修改時,有時候需要引用外部變數的值或者獲取乙個shell命令執行的結果,以便達到更加可觀的輸出結果 1 sed中使用變數替換 1 sed命令使用雙引號的情況下,使用 var直接引用 rooot 192 cat test.txt 192.168.53.128 contiv name...

shell指令碼學習知識點 一

1.shell是linux的外殼,是linux的使用者介面,可以為使用者提供輸入命令和引數,並可以得到命令執行結果的環境 2.可執行程式一般有兩種實現方式 一種是二進位制方式 一種是script方式 二進位制方式是先將編寫好的程式進行編譯,變成計算機可是別的指令 然後在執行。這種編譯好的程式只能執行...

shell指令碼學習知識點 二

1.注釋 行首以 開頭 除 之外 是注釋。用於指定當前的指令碼直譯器。2.分號 a.命令分隔符 使用分號 可以在一行寫兩個或兩個以上的命令 b.終止case選項 雙分號 使用雙分號 可以終止case選項 3.點號 等價於source命令 bash中的source命令用於在當前bash環境下讀取並執行...