# -> 表示注釋在腳本中沒有多行注釋只有單行注釋
echo -> 表示輸出例如 echo "Hello Word!"
例: name="HelloWord"
注意: 變量名和等號中間不能添加空格
注意: 變量名的首字符是字母或下劃線
例:
name="Hello Word and me!"
readonly name
name="111"
echo $name
執行命令: ./hello.sh
報錯: ./hello.sh: line 8: name: readonly variable
例:
name="Hello Word and me!"
unset name
echo $name
執行命令: ./hello.sh
打印為空
類型一: 本地變量
作用域是整個bash進程可以使用
語法: name="Mr.H"
類型二: 局部變量
作用域: 當前代碼段 (修飾符: local)
語法: local name="Mr.H"
類型三: 環境變量
作用域: 當前shell進程以及子進程 (修飾符: export)
語法: export name="Mr.H"
類型三: 位置變量
語法: ${0}
例子
one=${0}
two=${1}
three=${2}
echo "文件名${one}"
echo "姓名${two} 年齡${three}"
執行命令: $ ./hello.sh Mr.H 100
輸出:
文件名./hello.sh
姓名Mr.H 年齡100
${0} : 表示文件名稱
${?} : 表示返回上一個命令執行的狀態返回值如下
0: 表示執行成功
1: 表示執行結果
0: 表示程序狀態返回碼(0-255)
例:
han = ""
temp=${?}
echo "哈哈${temp}"
執行命令: ./hello.sh
./hello.sh: line 10: han: command not found
哈哈127
注意:此處所指的上一個命令其實就是上一行執行的命令
${#} : 參數個數
${*} : 參數列表
${@} : 參數列表
${$} : 獲取當前shell進程ID
${!} : 執行上一個指令進程ID
聲明:
name='Han'
echo ${name}
字符串拼接
name='Han'
age=100
info="${name} ${age}"
echo ${info}
獲取字符串長度 #
name="Han"
echo ${#name}
截取字符串
語法: ${變量名:開始位置:截取長度}
例:
name="wangmumu"
echo ${name:0:3}
從第幾個截取到最后
name="wangmumu"
lenth=${#name}-1
echo ${name:1:lenth}
同時可以寫成,第三個參數不寫默認截取到最后
echo ${name:1}
字符串刪除
語法: ${變量名#要刪除的字符串 正則表達式}
作用: 從字符串開頭(左邊)開始匹配要刪除的字符串
例:
name="wangmumu"
echo ${name#u}
這樣是刪除不了的因為這個是匹配左邊的第一個字符
name="wangmumu"
echo ${name#w}
這樣是可以刪除的
刪除某個字符前面的所有字符包含自己 *
例:
name="wangmumu"
echo ${name#*u}
執行結果:
mu
指定范圍刪除 a*b 意思是刪除a和b之間的字符(注意a必須是第一 個字符)
例:
例:
name="wangmufmu"
echo ${name#w*f}
執行結果:
mu
泛反向刪除使用(從右往左刪除)
name="wangmufmu"
echo ${name##*f}
執行: wangmu
%刪除
語法: ${變量名%要刪除的字符串 正則表達式}
從字符串的尾部開始匹配, 刪除匹配的字符串
例:
name="wangmufmu"
echo ${name%u}
結果:
wangmufm
查找指定字符串第一個,并且刪除前面所有字符串包括自己
name="wangmufmu"
echo ${name%f*}
結果:
wangmu
指定刪除的范圍
name="wangmufmu"
echo ${name%g*u}
結果:
wan
說明: 是從第一個開始刪除到g這個字符
查找指定字符最后一個,并且刪除前面所有字符
name="wangmufmu"
echo ${name%%u*}
結果:
wangm
總結:
從左邊刪除到右邊
# : 表示查詢方向從左到右
## : 表示查詢方向從右到左
從右邊刪除到左邊
% : 表示查詢方向從右到左
%% : 表示查詢方向從左到右
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。