普通陣列:只能使用整數作為陣列索引(元素下標)
定義
#陣列名[索引下標]=值
array[0]=v1
array[1]=v2
array[2]=v3
#一次賦予多個值
array=(v1 v2 v3 v4)
array=(aa bb "cc"
)array=(1 2 3 4 "abc"
[10]=lll)
#將結果賦值給陣列
array1=(`cat
/etc/password`)
array2=(`ls
/etc`)
讀取
#$
echo
$echo
$#列印陣列元素個數
echo
$#列印陣列元素下標
echo
$#訪問指定的元素;1代表從下標為1的元素開始獲取;2代表獲取後面幾個元素
echo
$#檢視普通陣列的資訊
declare -a
關聯陣列:可以使用字串作為陣列索引(下標)
首先要宣告是關聯陣列
declare -a array
賦值
#陣列名[下標]=變數值
array[a]
=one
array[b]
=two
array[c]
=three
#array=
([a]
=one [b]
=two [c]
=three)
讀取同上
例項
url=www.baidu.com
#變數的長度
變數「內容」的替換
例項
url=abab
echo
$abab
url=abab
echo
$abab
結構
case var in
pattern 1)
command1 ;;
pattern 2)
command2 ;;
pattern 3)
command3 ;;
*)#default
command4 ;;
esac
例項
#!/bin/bash
var=
"$1"
echo
$var
case
$var
ina|a)
echo 1;;
b|b)
echo 2;;
*)echo 3;;
esac
./a.sh a
1./a.sh b
2./a.sh c
3
定義
函式名(
)
function 函式名(
)
例項
#建立檔案
vim a.sh
#!/bin/bash
hello(
)#讀取
source a.sh
hello
hello world
#也可以不用source讀取直接在檔案中呼叫
vim a.sh
#!/bin/bash
hello(
)hello
關於return
return預設返回函式中最後乙個命令狀態值,也可以給定引數值,範圍是0-256
全域性
希望自己的函式變成全域性的話去修改/etc/bashrc吧
& 表示任務在後台執行,加在命令的末尾&& 表示前一條命令執行成功時,才執行後一條命令>是指:將正常資訊重定向&>可以將錯誤資訊或者普通資訊都重定向輸出 這裡正規表示式主要是用來對字串進行操作,主要可以實現匹配郵箱,匹配身份證號碼,手機號,銀行卡號等功能。
字元描述
\建乙個字元標記為乙個特殊字元,或乙個原義字元,比如,」n」匹配字元「n」, 「/n」匹配乙個換行符,序列」\」匹配」\」而「(」匹配」(「。
^匹配輸入字串的開始位置
$匹配輸入字串的結束位置
n是乙個非負整數,匹配確定的n次,例如:」o」不能匹配「bob」種的「o」,但是能匹配「book」種的兩個」o」
n是乙個非負整數,至少匹配n次,例如:「o「不能匹配『bob』,但可以匹配」foooood「種的所有『o』,"o"等價於」o+「,"o"等價於」o*「
m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次,比如「o」將匹配「fooooodv」種的前三個o
*匹配前面的子表示式零次或多次
+匹配前面的子表示式一次或多次
?匹配前面的子表示式零次或一次
?當該字元緊跟在任何乙個其他限制符(*,+,?,,,)後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串。例如,對於字串「oooo」,「o+?」將匹配單個「o」,而「o+」將匹配所有「o」。
.匹配除了」\n「之外的任何單個字元,要匹配包括「\n」在內的任何字元,請使用像「(.|\n)」的模式。
(pattern)
匹配pattern並獲取這一匹配的子字串。該子字串使用者向後引用。要匹配圓括號字元,請使用「(」或「)」。
x豎線y
匹配x或y。 例如」z豎線food「能匹配」z「或」food」.」(z豎線f)oood」則匹配」zood「或」food「。
[xyz]
字元集合(character class)。匹配所包含的任意乙個字元。例如,」[abc]「可以匹配」plain「中的」a」。其中特殊字元僅有反斜線\保持特殊含義,用於轉義字元。其它特殊字元如星號、加號、各種括號等均作為普通字元。脫字元^如果出現在首位則表示負值字元集合;如果出現在字串中間就僅作為普通字元。連字元 - 如果出現在字串中間表示字元範圍描述;如果如果出現在首位則僅作為普通字元。
[^xyz]
排除型(negate)字元集合。匹配未列出的任意字元。例如,「[^abc]」可以匹配「plain」中的「plin」。
[a-z]
字元範圍。匹配指定範圍內的任意字元。例如,「[a-z]」可以匹配「a」到「z」範圍內的任意小寫字母字元。
[a-z]
字元範圍。匹配指定範圍內的任意字元。例如,「[a-z]」可以匹配「a」到「z」範圍內的任意小寫字母字元。
shell 學習記錄
1 以兩個破折號 來表示選項結尾的用法,源自system v。自此之後命令列上看起來像選項的任何專案,都將 一視同仁的當成引數處置。上面這個句話是什麼鬼意思?2 shell是別的三種命令 1 內建命令 比如cd echo test 2 shell函式 3 外部命令 shell變數 1 變數名字 字元...
shell學習記錄
1.shell 副檔名 sh 約定標記,告訴系統指令碼需要的直譯器,即哪一種shell 執行shell檔案的三種方法 test.sh bin sh test.sh bin bash test.sh注意 shell變數等號兩邊不能有空格,使用變數的時候加 符號字串擷取 與 刪除左邊字元 保留右邊字元 ...
shell學習記錄
段落 sed 的命令格式 sed command file sed command 動作 command1 file1 f test x test x then 這裡的關鍵有幾點 1 使用單個等號 2 注意到等號兩邊各有乙個空格 這是unix shell的要求 3 注意到 test x最後的x,這是...