【Linux】| Shell教程-變量

市面上Linux學(xué)習(xí)資料太多,實(shí)在不用再多做介紹,所以這篇文章主要是做一些自己認(rèn)為是比較重要的筆記記錄,遇到的一些問(wèn)題及解決辦法,好的學(xué)習(xí)資源分享等等。
本人以菜鳥(niǎo)教程作為學(xué)習(xí)入門(mén)
本文只列出示例用法,更多用法自行搜索 或者man 命令例如man useradd或者命令 --help 例如useradd --help@
CSDN地址:
本次更新(往期查看CSDN):
Shell教程
Shell教程
shell教程參考地址在一般情況下,人們并不區(qū)分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同樣也可以改為 #!/bin/bash。
#! 告訴系統(tǒng)其后路徑所指定的程序即是解釋此腳本文件的 Shell 程序。
第一個(gè)shell腳本
#!/bin/bash
echo "Hello World !"
運(yùn)行 Shell 腳本有兩種方法:
1、作為可執(zhí)行程序 將上面的代碼保存為 test.sh,并 cd 到相應(yīng)目錄:
chmod +x ./test.sh #使腳本具有執(zhí)行權(quán)限
./test.sh #執(zhí)行腳本
2、作為解釋器參數(shù) 這種運(yùn)行方式是,直接運(yùn)行解釋器,其參數(shù)就是 shell 腳本的文件名,如:
/bin/sh test.sh
/bin/php test.php
變量
注意,變量名和等號(hào)之間不能有空格,這可能和你熟悉的所有編程語(yǔ)言都不一樣。同時(shí),變量名的命名須遵循如下規(guī)則:
命名只能使用英文字母,數(shù)字和下劃線,首個(gè)字符不能以數(shù)字開(kāi)頭。 中間不能有空格,可以使用下劃線(_)。 不能使用標(biāo)點(diǎn)符號(hào)。 不能使用bash里的關(guān)鍵字(可用help命令查看保留關(guān)鍵字)。
使用變量
使用一個(gè)定義過(guò)的變量,只要在變量名前面加美元符號(hào)即可,如:
your_name="blyang"
echo $your_name
echo ${your_name}
推薦給所有變量加上花括號(hào),這是個(gè)好的編程習(xí)慣。
只讀變量
使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變。
#!/bin/bash
myUrl="https://www.google.com"
readonly myUrl
myUrl="https://www.baidu.com"
[root@poplang shell_code]# chmod +x ./test.sh
[root@poplang shell_code]# ./test.sh
./test.sh: line 4: myUrl: readonly variable
刪除變量
your_name="blyang"
unset your_name
變量類(lèi)型
運(yùn)行shell時(shí),會(huì)同時(shí)存在三種變量:
局部變量 局部變量在腳本或命令中定義,僅在當(dāng)前shell實(shí)例中有效,其他shell啟動(dòng)的程序不能訪問(wèn)局部變量。 環(huán)境變量 所有的程序,包括shell啟動(dòng)的程序,都能訪問(wèn)環(huán)境變量,有些程序需要環(huán)境變量來(lái)保證其正常運(yùn)行。必要的時(shí)候shell腳本也可以定義環(huán)境變量。 shell變量 shell變量是由shell程序設(shè)置的特殊變量。shell變量中有一部分是環(huán)境變量,有一部分是局部變量,這些變量保證了shell的正常運(yùn)行
Shell 字符串
單雙引號(hào)
單雙引號(hào)都可以表示字符串,建議用雙引號(hào),雙引號(hào)的優(yōu)點(diǎn):
雙引號(hào)里可以有變量 雙引號(hào)里可以出現(xiàn)轉(zhuǎn)義字符
your_name='blyang'
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str
此時(shí)可以輸出Hello, I know you are "blyang"!,若換成單引號(hào)則不行,另外,echo -e指輸出并處理特殊字符,比如示例最后的換行符\n
拼接字符串
your_name="blyang"
# 使用雙引號(hào)拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
# 使用單引號(hào)拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2 $greeting_3
獲取字符串長(zhǎng)度
string="abcd"
echo ${#string} #輸出 4
提取子字符串
greeting="hello, "$your_name" !"
echo ${greeting:0:5}
# 輸出hello
查找子字符串
echo `expr index "$greeting" b`
輸出b第一次出現(xiàn)的位置
猜你喜歡

