Shell--引用變數帶不帶""的區別

心恩惠动發表於2024-05-11

在shell指令碼中,引用變數時有幾種形式: $dir "$dir" "${dir}" ,每種形式的含義不同

  • $dir: 這種形式的變數名是最簡單的形式,表示直接引用變數的值。在這種情況下,如果變數的值包含空格或特殊字元,則會被解釋為單個引數。
  • "$dir": 表示引用變數的值,並保留其中的空格和特殊字元。雙引號將變數的值看作一個整體。這種形式通常用於需要保留空格、特殊字元或對變數進行字串插值的情況。
  • "${dir}": 使用${}來引用變數,這種形式通常用於在變數名後面緊跟其他字元,以明確指示變數名的邊界。${dir}也可以用於在變數名中包含特殊字元,或在字串中嵌入變數.

例項:

#!/bin/bash
dir="path/to/directory"
file_name="my file.txt"

# 不使用引號
echo $dir   # 輸出:path/to/directory

# 使用雙引號
echo "$dir"   # 輸出:path/to/directory
echo "$file_name"   # 輸出:my file.txt

# 在變數名後面緊跟其他字元
echo "${dir}name"   # 輸出:path/to/directoryname
# 用於在變數名中包含特殊字元
echo "${dir}_suffix"   # 輸出:path/to/directory_suffix
# 用於在字串中嵌入變數
echo "The file is: ${dir}/${file_name}"   # 輸出:The file is: path/to/directory/my file.txt

相關文章