Shell腳本變量${}與命令$()替換區(qū)別小結(jié)
在Shell腳本中,取變量值使用 ${},而 $() 用于命令替換。兩者有本質(zhì)區(qū)別:
${} - 變量替換
name="John"
echo "Hello, ${name}" # 輸出: Hello, John
echo "Hello, $name" # 也可以,但建議用${}更清晰
# ${} 的優(yōu)勢場景:
file="test.txt"
echo "${file}.bak" # 明確變量邊界,輸出: test.txt.bak
echo "$file.bak" # 也能工作,但不夠清晰
# 高級變量操作
path="/home/user/file.txt"
echo "${path##*/}" # 獲取文件名: file.txt
echo "${path%/*}" # 獲取目錄: /home/user
echo "${name:-Guest}" # 默認(rèn)值: 如果name為空則用Guest
$() - 命令替換
# 執(zhí)行命令并獲取輸出 current_date=$(date) file_count=$(ls | wc -l) echo "今天日期: $current_date" echo "文件數(shù)量: $file_count" # 嵌套使用 content=$(cat $(find . -name "*.txt" | head -1))
主要區(qū)別
特性 ${} $()
用途 變量替換 命令替換
內(nèi)容 變量名 要執(zhí)行的命令
返回值 變量的值 命令的標(biāo)準(zhǔn)輸出
例子 ${var} $(ls -l)
實(shí)際使用建議
# 推薦寫法
name="Alice"
greeting="Hello, ${name}! Today is $(date)."
# 復(fù)雜例子
backup_dir="/backup/$(date +%Y%m%d)"
files_to_backup=$(find /home -name "*.important" 2>/dev/null)
echo "備份目錄: ${backup_dir}"
echo "找到 ${#files_to_backup[@]} 個重要文件"
總結(jié):用 ${} 獲取變量值,用 $() 執(zhí)行命令并獲取輸出結(jié)果。
到此這篇關(guān)于Shell腳本變量${}與命令$()替換區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)Shell 變量${}與命令$()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Shell中的${}、##和%%使用范例
- Shell腳本中$符號的幾種用法小結(jié)
- Shell特殊變量(Shell $#、$*、$@、$?、$$)的使用
- 淺談linux中shell變量$#,$@,$0,$1,$2的含義解釋
- 詳解Shell 腳本中 “$” 符號的多種用法
- Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用
- 詳解Shell $*和$@之間的區(qū)別
- Shell $?獲取函數(shù)返回值或者上一個命令的退出狀態(tài)
- 區(qū)分shell中的 反引號、$()和${}
- shell腳本中$符號的命令使用匯總
- PowerShell中的特殊變量$null介紹和創(chuàng)建多行注釋小技巧
相關(guān)文章
高級開發(fā)運(yùn)維測試必須掌握的envsubst命令使用詳解
這篇文章主要為大家介紹了高級開發(fā)運(yùn)維測試必須掌握的envsubst命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Linux shell 實(shí)現(xiàn)用for循環(huán)100次的方法
今天小編就為大家分享一篇Linux shell 實(shí)現(xiàn)用for循環(huán)100次的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Shell中使用scp命令實(shí)現(xiàn)文件上傳代碼
這篇文章主要介紹了Shell中使用scp命令實(shí)現(xiàn)文件上傳代碼,本文講解使用scp命令實(shí)現(xiàn)名登錄上傳文件,需要的朋友可以參考下2015-04-04

