1、#。/bin/sh開頭
2、變數:
(1)定義:變數名=字串。注意:=左右無空格;name=“hello world”,為其賦值帶空格的字串;
(2)引用:用$nametest、${name}test。
3、萬用字元:
(1)*符號:用於匹配字串零次或多次出現;匹配的含.和\符號必須顯示指出。如*test不能匹配.EXtest,而要用.EX*;*test不能匹配/home/test,要用/*/test才可以。
(2)。符號:僅匹配對應位置的一個字元
(3)[]符號:匹配該字元組所限定範圍內的任何一個字元
(4)。符號:匹配不在該字元組所限定範圍內的任何一個字元
4、shell輸入:
read 變數1 變數2
#!/bin/sh
echo "input your name and age:"
read name age
echo "name is :"$name
echo "age is :"$age
5、shell輸出:
echo
6、shell數組:支援一維數組,但不限定數組的具體大小。
(1)取值的一般方式:${數組名[下標值]}
(2)賦值方式:數組名[下標值]=值
(3)可以一個個賦值,也可整體賦值,但值與值用空格隔開。數組名=(value1 value2 value3...)。
eg:
#!/bin/sh
name=(i am very happy)
echo "name[0] is:"${name[0]}
echo "name[1] is:"${name[1]}
echo "name[2] is:"${name[2]}
echo "name[3] is:"${name[3]}
(4)可以通過下標輸出值,也可以用*和@符號代替下標,如${name[*]}取出數組中所有元素的值。
#!/bin/sh
name=(i am very happy)
echo "name is " ${name[*]}
echo "name1 is "${name[@]}
(5)上面是如何增加、讀取,下面介紹如何修改、刪除。
A、修改理解為對數組指定元素的重新賦值;
B、刪除需要藉助一個外部命令:unset。unset name[0]來清空下標為0的元素;也可以使用unset name[@]命令來取消數組中所有的元素。
#!/bin/sh
name=(i am very happy)
name[0]=myself
echo ${name[@]}
unset name[0]
echo ${name[@]}
unset name[@]
echo ${name[*]}
name[0]=hello
name[1]=world
echo ${name[*]}
運行結果:
myself am very happy
am very happy
hello world
6、環境變數:linux中有一塊公用空間,專門用於存放環境變數,使用者可以通過printenv進行查看。
(1)基本的環境變數:
PWD、HOME、LOG NAME、SHELL、PATH
(2)環境變數的刪除:
用unset命令,eg:unset PATH 則PATH即為空白。
#!/bin/sh
echo "PWD:"$PWD
echo "path:"$PATH
echo "logname:"$LOGNAME
echo "sehll:"$SHELL
echo "home:"$HOME
運行結果:
PWD:/home/test/shell
path:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
logname:root
sehll:/bin/bash
home:/root