shell編程技巧——${1-}的意義是啥?
2025-08-05 10:55 瀟湘隱者 閱讀(160) 評論(0) 收藏 舉報在shell腳本中,如果看到${1-}或"${1-}"這樣的寫法(變量),你知道它的具體意義嗎?
if [ -z "${1-}" ] ; then
.....#省略部分代碼
fi
其實${1}表示腳本第一個參數的值,而在Shell 腳本中,${1-}是一種參數擴展(Parameter Expansion)的語法,用于提供默認值。
具體來說,${1-} 的含義是:
- 如果位置參數 $1 有值,則使用 $1 的值。
- 如果位置參數 $1 沒有值(即未設置或為空),則使用默認值(默認值為空字符串)。
在Shell(如 Bash、Zsh 等)中,參數擴展(Parameter Expansion) 是一種對變量進行處理和轉換的機制,允許在引用變量
時對其值進行修改、判斷或提取。它是 Shell 腳本中非常強大的功能,常用于處理字符串、設置默認值、檢查變量狀態等。
其中一種是設置默認值(變量未定義或為空時),當變量未設置(未定義)或值為空時,使用指定的默認值。
${var-word}
作用:僅當var未設置(未定義)時,擴展為word,若var已設置(即使值為空),則擴展為var的值(空)。
如下測試所示:
$ more test.sh
#!/bin/bash
if [ -z $1 ] ;then
echo ${1-"kerry"}
else
echo $1
fi
$ sh test.sh
kerry
$ sh test.sh kkk
kkk
掃描上面二維碼關注我
如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力!
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接.
浙公網安備 33010602011771號