🐉

内功心法:乾坤大挪移

🐉

第十七回:韦小宝乱起花名,变量法灵活多变

👱

师父,这脚本里怎么有些字前面带个 $ 符号?看着像银票一样。

👳

小宝,那叫变量。就像你给皇上起名“小玄子”,给建宁公主起名“建宁”。名字(变量名)是不变的,但指代的人(变量值)可以是任何人。用到的时候,前面加个 $ 就能把人叫出来。

📦 定义变量 (起花名)

在 Shell 里起名字非常简单,不用声明类型,直接划等号。

📜 起名规则

  • name="Wei Xiaobao" (正确)
  • name = "Wei Xiaobao" (❌ 错误!等号两边不能有空格!)
  • 名字只能用英文字母、数字、下划线,首个字符不能是数字。

🗣️ 使用变量 (叫名字)

定义的时候不用 $,用的时候要加 $

master="Chen Jinnan"
echo $master
echo ${master} # 加上花括号更稳妥,防止认错人

比如:echo "I am ${master}'s student." 如果不加花括号,系统会以为你在找 $master's 这个变量。

🔒 只读变量 (金口玉言)

有些名字是皇上御赐的,改不得。

readonly king="Kangxi"
king="Xiaobao" # ❌ 报错!这可是欺君之罪!

🗑️ 删除变量 (革职查办)

不想用这个变量了,可以把它废掉。

unset master
echo $master # 啥也打印不出来,人已经不在了

注意:readonly 的变量不能 unset,皇上赐的官,你自己辞不掉。

🧵 字符串变量 (连珠炮)

变量里最常用的就是字符串。

name="小玄子"
echo 'Hello, $name' -> 输出:Hello, $name
echo "Hello, $name" -> 输出:Hello, 小玄子

🖐️ 动手时刻:韦小宝的自我介绍

编写脚本,使用变量打印一段话。

  1. 编写 intro.sh
    #!/bin/bash
    my_name="韦小宝"
    master="陈近南"
    echo "在下 ${my_name},家师 ${master}。"
    # 尝试修改只读变量
    readonly secret="四十二章经"
    # secret="金瓶梅"  <-- 这一行如果取消注释,运行会报错
                        
  2. 运行查看结果: bash intro.sh

💡 提示:记住,等号两边千万别加空格,这是新手最容易犯的错!