Bootstrap

shell篇加载普通变量知识点总结

目录

1.单引号、双引号、反引号及不加引号

2.{} 的作用

2.1 明确变量的边界,以避免变量名与后续字符混淆。

2.2 默认值操作:

2.3 长度计算:

2.4字符串操作:

3.使用awk命令输出变量总结:


1.单引号、双引号、反引号及不加引号(echo$/grep/sed)

在 shell 脚本中,变量在不同引用方式(单引号、双引号、反引号及不加引号)的行为和区别。每种引用方式的特点如下:


- 单引号(' '):强引用,变量或命令不被解析,输出内容完全按字面量显示。

输入:

my_var="hello"
echo '$my_var'

#$my_var

- 双引号(" "):弱引用,变量或命令会被解析,推荐使用。

输入:

my_var="world"
echo "Hello, $my_var"

#Hello, world

- 无引号:容易出错,尤其是变量中有空格或特殊字符时。

my_var=hello
echo Hello, $my_var

#Hello, hello

注意:
如果变量值中包含空格或特殊字符,使用无引号会导致意外结果。例如:

#输入
my_var="hello world"
echo $my_var
#输出:
#hello world

- 反引号:执行命令并返回结果,建议使用 $() 替代。

current_date=`date`
echo $current_date
echo ($current_date)

#Fri Jan 17 12:34:56 UTC 2025

2.{} 的作用

2.1 明确变量的边界,以避免变量名与后续字符混淆

var="Hello"
echo $varWorld   # 输出为空,因为 Shell 解释为变量 `varWorld`,而不是 `var`。
echo ${var}World # 输出为 HelloWorld,使用 `{}` 明确了变量边界。

2.2 默认值操作

${var:-default}:如果 var 未定义或为空,则返回 default

${var:=default}:如果 var 未定义或为空,赋值为 default 并返回。

echo ${var:-"Default Value"} # 若 var 未定义,则输出 "Default Value"。
echo ${var:="Default Value"} # 若 var 未定义,赋值并输出 "Default Value"。

2.3 长度计算:

${#var}:获取变量值的长度。

var="Hello"
echo ${#var} # 输出 5

2.4字符串操作

${var%pattern}:从变量值末尾删除匹配 pattern 的最短部分。

${var%%pattern}:从变量值末尾删除匹配 pattern 的最长部分。

${var#pattern}:从变量值开头删除匹配 pattern 的最短部分。

${var##pattern}:从变量值开头删除匹配 pattern 的最长部分。

var="hello.world.backup"

# 从末尾删除最短匹配的 ".后面的内容"
echo ${var%.*} # 输出:hello.world

3.使用awk命令输出变量总结(awk):

下面进行一个简单的示例:

info="tom"
awk 'BEGIN {print "$info"}'  # 输出:$info

;