表示式
含義$
parameter
變數未宣告,取預設值word
$
parameter
變數未宣告或值為空時,取預設值word
$
parameter
變數未宣告,則取預設值word
$
parameter
變數未宣告或值為空時,取預設值word
$
parameter
變數未宣告, 取值為空,否則取值為word
$
parameter
變數宣告, 取值為word
,否則取值為空
$
parameter
變數未宣告, 標準錯誤輸出word
且退出 shell
$
parameter
取值為空, 標準錯誤輸出word
且退出 shell
$
匹配所有以prefix
開頭且宣告的變數
$
匹配所有以prefix
開頭且宣告的變數
$
$parameter
的長度
$
從左邊指定位置offset
開始,擷取後面所有字串
$
從左邊指定位置offset
開始,擷取指定長度length
字串
$
從右邊開始,刪除最短匹配pattern
的子字串
$
從右邊開始,刪除最長匹配pattern
的子字串
$
從左邊開始,刪除最短匹配pattern
的子字串
$
從左邊開始,刪除最長匹配pattern
的子字串
$
從右邊開始,替換第一次出現匹配項pattern
為string
$
替換所有匹配項pattern
為string
$
替換開頭匹配pattern
字串為string
$
替換結尾匹配pattern
字串為string
$
開頭第乙個小寫字母轉換為大寫
$
所有小寫字母轉換為大寫
$
開頭第乙個大寫字母轉換為小寫
$
所有大寫字母轉換為小寫
可以使用sh -v teststring.sh
命令來執行如下指令碼,檢視原始命令及輸出內容,為了方便區分命令和內容,其中輸出內容以深藍色顯示。
# 例項指令碼
$ cat teststring.sh
#!/bin/bash
# 字串操作符例項
# 判斷作業系統,解決 mac下 echo 不支援「-e」引數問題if[
["$(
uname)"
!="darwin"]]
;then
ee="-e"
fi# var 變數未宣告
echo
$"\033[36mvar 變數未宣告,輸出為空: $\033[0m"
# 變數未宣告,取預設值
echo
$"\033[36mvar 變數未宣告,則取預設值:$\033[0m"
echo
$"\033[36mvar 變數未宣告,則取預設值:$\033[0m"
# 變數未宣告或取值為空時,取預設值
# 變數未宣告,取預設值
echo
$"\033[36mvar2 變數未宣告,則取預設值:$\033[0m"
echo
$"\033[36mvar2 變數未宣告,則取預設值:$\033[0m"
# 取值為空時
var3=
echo
$"\033[36mvar3 變數宣告,但值為空時,取預設值:$\033[0m"
echo
$"\033[36mvar3 變數宣告,但值為空時,取預設值:$\033[0m"
# 變數未宣告,值為空;宣告了為設定值
echo
$"\033[36mvar4 變數未宣告,值為空:$\033[0m"
var5=daodaotest5
echo
$"\033[36mvar5 變數宣告,取設定值:$\033[0m"
# 變數未宣告或取值為空時,列印設定資訊且程式退出
var6=daodaotest6
echo
$"\033[36mvar6 變數宣告且取值,不列印設定資訊:$\033[0m"
# 變數未宣告或取值為空時,列印設定資訊且程式退出
# 為了指令碼繼續執行注釋掉
#echo $ "\033[36mvar7 變數未宣告,列印設定資訊:$\033[0m"
#var8=
#echo $ "\033[36mvar8 取值為空,列印設定資訊:$\033[0m"
# 通過字首字元匹配宣告過的變數名
x1=1
x2=2
x3=3
echo
$"\033[36m通過字首字元匹配宣告過的變數名:$\033[0m"
echo
$"\033[36m通過字首字元匹配宣告過的變數名:$\033[0m"
url=
""## 字串長度
echo
$"\033[36m字串內容:$\033[0m"
echo
$"\033[36m字串長度:$\033[0m"
## 字串擷取
# 字串位置擷取
echo
$"\033[36m從左邊指定位置開始,擷取後面所有字串:$\033[0m"
echo
$"\033[36m從左邊指定位置開始,擷取指定長度字串:$\033[0m"
echo
$"\033[36m從右邊指定位置長度開始,擷取後面所有字串(注意「:」右邊有空格):$\033[0m"
echo
$"\033[36m從右邊指定位置長度開始,擷取後面所有字串(同上,推薦):$\033[0m"
echo
$"\033[36m從右邊指定位置長度開始,擷取後面所有字串(同上,推薦):$\033[0m"
echo
$"\033[36m從右邊指定位置開始,擷取指定長度字串(注意「:」右邊有空格):$\033[0m"
echo
$"\033[36m從右邊指定位置開始,擷取指定長度字串(同上,推薦):$\033[0m"
echo
$"\033[36m從右邊指定位置開始,擷取指定長度字串(同上,推薦):$\033[0m"
## 擷取不匹配的字串,即刪除匹配的字串
echo
$"\033[36m從右邊開始,刪除最短匹配字串:$\033[0m"
echo
$"\033[36m從右邊開始,刪除最長匹配字串:$\033[0m"
echo
$"\033[36m從左邊開始,刪除最短匹配字串:$\033[0m"
echo
$"\033[36m從左邊開始,刪除最長匹配字串:$\033[0m"
## 匹配項替換
echo
$"\033[36m從右邊開始,替換第一次出現匹配項:$\033[0m"
echo
$"\033[36m替換所有匹配項:$\033[0m"
echo
$"\033[36m替換開頭匹配字串:$\033[0m"
echo
$"\033[36m替換結尾匹配字串:$\033[0m"
param=daodaotest
# macos zsh 不支援
echo
$"\033[36m開頭第乙個小寫字母轉換為大寫:$\033[0m"
echo
$"\033[36m所有小寫字母轉換為大寫:$\033[0m"
param=daodaotest
# macos zsh 不支援
echo
$"\033[36m開頭第乙個大寫字母轉換為小寫:$\033[0m"
echo
$"\033[36m所有大寫字母轉換為小寫:$\033[0m"
操作符 字串操作符 和 型別轉換操作符
一 字串操作符 對於 的使用,當所有值都是數字的時候,執行計算處理 當有乙個是字元型別的時候,就將數字轉換為string字串進行拼接處理。二 型別轉換操作符 public class text 結果 int above 0.7 0 math.round above 0.7 1 int below 0...
SAP 字串操作符
操作符 說明co 操作字串1中每個字元都在操作字串2中存在,則表示式為true,反之為false.表示式為true時sy fdpos 操作字串1的長度,為false時,sy fdpos 操作字串1中不在操作字串2中的字元所在作字串1中第乙個位置。cn操作字串1中不是每個字元都在操作字串2中存在,則表...
PowerShell 字串操作符
格式化操作符 f 在powershell文字操作符中非常重要,經常被用來增強數字型別和日期型別的可讀性 diskettes per cd f 720mb 1.44mb 500 diskettes per cd所有的基本操作符形式都大同小異,要處理的資料位於操作符的左右兩邊,然後通過操作符建立連線。例...