如下代码:(正确的赋值)
jack=123
如果加上了空则,bash则按照指令处理
jack = 123
zsh: command not found: jack # 报错信息
但开头不能是数字
如下错误示例:
2hb=123
zsh: command not found: 2hb=123 # 报错信息
如下代码:
var="lang is $LANG"
echo $var
在linux运行如下:

但是在macos下会有些不用(linux不同发行版问题)
在macos运行如下:

var='lang is $LANG'
echo $var
lang is $LANG # 输出
如: [Enter], $, , 空白字符, '等
代码如下:
myname=Vbird\ Tsai
echo $myname
Vbird Tsai # 输出
如果不使用反斜杠 \ 代码如下:
myname=Vbird Tsai
zsh: command not found: Tsai # 输出
1、uname -r : 显示操作系统的发行版号
2、uname -a :显示系统名、节点名称、操作系统的发行版号、内核版本等等。
在一串指令的执行中,还需要借由其他额外的指令所提供的信息时,可以使用反单引号“ 指令 ”或 “$(指令)”。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本的设置: “version=$(uname -r)”再“echo $version”可得“3.10.0-229.el7.x86_64”
在linux运行如下:

若该变量为扩增变量内容时,则可用 “$变量名称” 或 ${变量} 累加内容
方式一:
PATH="$PATH":/home/bin
echo $PATH
方式二:
PATH=${PATH}:/home/bin
echo $PATH
输出内容如下:

若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量: “export PATH”
最佳实践:

通常大写字符为系统默认变量,自行设置变量可以使用小写字符,方便判断 (纯粹依照 使用者兴趣与嗜好)
“unset 变量名称”例如取消 myname 的设置: “unset myname”
什么是“Bash子程序”呢?
就是说,在我目前这个 shell 的情况下,去启用另一个新的 shell ,新的那 个 shell 就是子程序啦!在一般的状态下,父程序的自订变量是无法在子程序内使用的。但是 通过 export 将变量变成环境变量后,就能够在子程序下面应用了。(见上面 1.5 第三点)
范例六:如何进入到您目前核心的模块目录?
cd /lib/modules/`uname -r`/kernel
cd /lib/modules/$(uname -r)/kernel # 以此例较佳!
单引号与双引号的最大不 同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符 ,而不会有特殊符号。
假设您定义了一个变量, name=VBird ,现在想以 name 这个变 量的内容定义出 myname 显示 VBird its me 这个内容,要如何订定呢?
name=VBird
echo $name
VBird
myname="$name its me"
echo $myname
VBird its me
myname='$name its me'
echo $myname
$name its me
发现了吗?没错!使用了单引号的时候,那么 $name 将失去原有的变量内容,仅为一般字符 的显示型态而已!这里必需要特别小心在意!