每天学一点儿shell:shell字符串变量的基本操作
生活随笔
收集整理的這篇文章主要介紹了
每天学一点儿shell:shell字符串变量的基本操作
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- shell變量的定義
- 定義變量
- 變量命名規(guī)范
- 變量的使用
- 字符串的操作
- 單引號(hào)、雙引號(hào)
- 其他常見操作
- 獲取字符串長度
- 截取字符串
- 獲取字符串位置
shell變量的定義
定義變量
變量命名規(guī)范
| ! | 保留字,邏輯非 |
| : | 不做任何事,只做參數(shù)展開 |
| . | 讀取文件并在shell中執(zhí)行它 |
| alias | 設(shè)置命令或命令行別名 |
| bg | 將作業(yè)置于后臺(tái)運(yùn)行 |
| bind | 將關(guān)鍵字序列與readline函數(shù)或宏捆綁 |
| break | 保留字,跳出for、while、until、select循環(huán) |
| builtin | 調(diào)用命令的內(nèi)建命令格式,而禁用同名的函數(shù)。或者同名的擴(kuò)展命令 |
| case | 保留字,多重選擇 |
| cd | 切換當(dāng)前工作目錄 |
| command | 找出內(nèi)建和外部命令;尋找內(nèi)建命令而非同名函數(shù) |
| continue | 保留字,到達(dá)下次for、while、until、select循環(huán) |
| declare | 聲明變量定義變量屬性 |
| dirs | 顯示當(dāng)前存儲(chǔ)的列表 |
| disown | 將作業(yè)從列表中移除 |
| do | 保留字,for、while、until、select循環(huán)的一部分 |
| done | 保留字,for、while、until、select循環(huán)的一部分 |
| echo | 打印參數(shù) |
| elif | 保留字,if結(jié)構(gòu)的一部分 |
| else | 保留字,if結(jié)構(gòu)的一部分 |
| enable | 開啟和關(guān)閉內(nèi)建命令 |
| esac | 保留字,case的一部分 |
| eval | 將參數(shù)作為命令再次處理一遍 |
| exec | 以特定程序取代shell或?yàn)閟hell改變I/O |
| exit | 退出shell |
| export | 將變量聲明為環(huán)境變量 |
| fc | 與歷史命令一起運(yùn)行 |
| fg | 將作業(yè)置于后臺(tái)運(yùn)行 |
| fi | 保留字,if循環(huán)的一部分 |
| for | 保留字,for循環(huán)的一部分 |
| function | 定義一個(gè)函數(shù) |
| getops | 處理命令行選項(xiàng) |
| hash | 記錄并指定命令的路徑名 |
| help | 顯示內(nèi)建命令的幫助信息 |
| history | 顯示歷史信息 |
| if | 保留字,if循環(huán)的一部分 |
| in | 保留字,case、for、select循環(huán)的一部分 |
| jobs | 顯示后臺(tái)運(yùn)行的作業(yè) |
| kill | 向進(jìn)程傳送信號(hào) |
| let | 使變量執(zhí)行算術(shù)運(yùn)算 |
| local | 定義局部變量 |
| logout | 從Shell中注銷 |
| popd | 從目錄棧中彈出目錄 |
| pushd | 將目錄壓入棧 |
| pwd | 顯示當(dāng)前工作目錄 |
| read | 從標(biāo)準(zhǔn)輸入中讀取一行 |
| readonly | 將變量定義為只讀 |
| return | 從函數(shù)或腳本返回 |
| select | 保留字,生成菜單 |
| set | 設(shè)置Shell選項(xiàng) |
| shift | 變換命令行參數(shù) |
| suspend | 終止Shell的執(zhí)行 |
| test | 評(píng)估條件表達(dá)式 |
| then | 保留字,if結(jié)構(gòu)的一部分 |
| time | 保留字,輸出統(tǒng)計(jì)出來的命令執(zhí)行時(shí)間,其輸出格式由TIMEFORMAT變量來控制 |
| times | 針對(duì)Shell及其子Shell,顯示用戶和系統(tǒng)CPU的時(shí)間和 |
| trap | 設(shè)置撲捉程序 |
| type | 確定命令的源 |
| typeset | 聲明變量,定義變量屬性,與declare等價(jià) |
| ulimit | 設(shè)置和顯示進(jìn)程占用的資源限制 |
| umask | 設(shè)置和顯示文件權(quán)限碼 |
| unalias | 取消別名定義 |
| unset | 取消變量或函數(shù)定義 |
| until | 保留字,一種循環(huán)結(jié)構(gòu) |
| wait | 等待后臺(tái)作業(yè)完成 |
| while | 保留字,一種循環(huán)結(jié)構(gòu) |
變量的使用
使用變量只需要在前面加$即可
[root@hadoop-master ~]# my_name="leo825" [root@hadoop-master ~]# echo $my_name leo825 [root@hadoop-master ~]# echo ${my_name} leo825花括號(hào)加不加都行,主要視情況而定,如果會(huì)引起編譯器歧義需要添加來區(qū)分變量邊界
[root@hadoop-master ~]# echo "my name is ${my_name}" my name is leo825刪除變量
[root@hadoop-master ~]# unset my_name [root@hadoop-master ~]# echo ${my_name}[root@hadoop-master ~]#字符串的操作
單引號(hào)、雙引號(hào)
[root@hadoop-master ~]# my_name="leo825" [root@hadoop-master ~]# echo '單引號(hào)輸出:${my_name}' 單引號(hào)輸出:${my_name} [root@hadoop-master ~]# echo "雙引號(hào)輸出:${my_name}" 雙引號(hào)輸出:leo825 [root@hadoop-master ~]# echo "雙引號(hào)輸出:\"${my_name}\"" 雙引號(hào)輸出:"leo825"根據(jù)上面的比較總結(jié)如下:
其他常見操作
獲取字符串長度
[root@hadoop-master ~]# echo ${my_name} leo825 [root@hadoop-master ~]# echo ${#my_name} 6截取字符串
截取格式,這個(gè)是從左邊開始計(jì)數(shù):
${string: start :length}其中,string 是要截取的字符串,start是起始位置(從左邊開始,從0開始計(jì)數(shù)),lenth是要截取的長度(省略的話表示直到字符串的末尾)
[root@hadoop-master ~]# echo ${my_name} leo825 [root@hadoop-master ~]# echo ${my_name:1:2} eo [root@hadoop-master ~]# echo ${my_name:1} eo825截取格式,這個(gè)是從右邊開始計(jì)數(shù):
${string: 0-start :length}這種格式比上一種多了0-,這個(gè)是固定寫法,代表是從字符串右邊開始計(jì)數(shù)的。
這種方式要注意兩點(diǎn)
從右開始計(jì)數(shù)不太好理解,這個(gè)步驟是首先從右邊開始第1個(gè)向左查第3個(gè)位是8,然后向右數(shù)2位就是82
獲取字符串位置
[root@hadoop-master ~]# echo ${my_name} leo825 [root@hadoop-master ~]# echo `expr index "$my_name" 8` 4以上腳本中 “`” 是反引號(hào),而不是單引號(hào) “’”,不要看錯(cuò)了,需要執(zhí)行指令的都需要反引號(hào),就是Esc鍵正下方的那個(gè)鍵。
總結(jié)
以上是生活随笔為你收集整理的每天学一点儿shell:shell字符串变量的基本操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS7下Hadoop集群搭建
- 下一篇: CentOS7下安装pssh并使用