天天看點

Linux學習之路8(2):認識和學習bash第十章 認識和學習bash

第十章 認識和學習bash

read:從鍵盤輸入值賦予給變量。當讀到read的時候,系統就會停下來,等待從鍵盤輸入值。read在指令行中用的不多,也可以用read給變量指派。一般用在腳本檔案中。個人認為echo的意思和cout的意思差不多,不過echo自帶回車功能,不想要回車:-n。

#!/bin/bash

echo “請輸入值。”

read xx

echo “你剛剛輸入的值為$xx”(xx是數字的話最好用{}括起來)

在指令行中,read xx,輸入值後,echo $xx就可以檢視xx這個變量的值。如果沒有xx,那麼會有一個預設的變量REPLY,echo $REPLY也能顯示剛剛輸入的值。

ARRAY:如果一個指令的結果有很多值,那麼數組就可以很好的來管理這些值。

定義一個數組:xx=(aa bb cc dd),數組的下标也是從0開始的。

擷取數組值得方式:echo ${xx[0]}

檢視所有的元素:${xx[*]}或者${xx[@]}.

檢視所有的下标:${!xx[@]},檢視元素的個數:${#xx[@]}。

declare:定義一個環境變量。上面已經講過它的使用。

隻讀變量:declare –r xx,這個xx變量就是一個隻讀變量。

也可以這樣寫:readonly xx。隻讀變量不可以修改,不可以unset。

雙引号,單引号,反引号的差別:

雙引号裡面的變量會被解析出來,而單引号裡面是什麼就會輸出什麼,當反引号嵌套在指令裡面的時候,反引号裡面的内容會優先被執行。反引号同$()。echo “xxxx`hostname` xxx” ó echo“xxxx$(hostname)xxx”

在輸出變量時,最好用{}把變量括起來。如變量xx,echo “${xx}”。

ulimit:限制檔案大小,直接輸入指令ulimit,就可以檢視限制。ulimit –a可以檢視所有的限制,ulimit –f 數字(機關是位元組) ,這樣就可以限制檔案的大小。

變量内容的删除,替代和替換:

變量的删除:

定義變量path=$PATH(當申明變量的時候,不加‘$’,使用變量中的内容的時候,要加上‘$’)。

修改變量:‘%’,‘#’,‘%%’,‘##’。

‘%’,從後往前删,;例如:r=${path%bin*}。

‘*’:值不管是什麼,多有内容。

這句話的意思:從後往前删,隻删除第一次出現bin的之後的内容。

r=${path%%bin*}:從後往前删,一直删除最後一次出現bin的之後到的内容。

‘#’,從前往後删,效果與‘$’相同。

判斷變量是否存在:r=${xx-“aaaaaaaaaa”}:如果xx存在,會把xx的值賦給變量r,如果xx不存在,會把aaaaaaa這個值賦給變量r,這樣不會判斷xx是否為空值,就算是空值,也會傳遞給r。

r=${xx:-“aaaaaaa”}:如果xx存在,而且xx不為空值,那麼xx的值會傳遞給r,否則,aaaaaaa會傳遞個r。

r=${xx:=”aaaaaaaa”}:如果xx不存在,那麼aaaaaa會指派給xx,同時也會指派給r。

r=${xx:?”aaaaaaaa”}:如果xx沒有被定義或者xx為空值的話,那麼就會輸出?後面的警告資訊。

r=${xx:+”aaaaaaaa”}:xx如果定義了,并且xx為非空值得話,那麼aaaaaa這個值會指派給變量r。

       指令的别名:alias。取消别名:unalias。alias aa=”ifconfigeth0”。

unalias aa。

       檢視曆史:history。隻能儲存1000個指令,因為變量HISTFILESIZE的值是1000。清空曆史指令:history –c。

繼續閱讀