变量
定义变量
name=星梦科技网络 #定义变量:变量名=值
echo $name #输出变量:echo $变量名
单引号和双引号的区别
1、以单引号包围变量的值时,单引号里面是什么就输出什么。
2、以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。
将命令的结果赋值给变量
name=$(cat test.sh) #变量=$(命令)
只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
readonly myUrl #redonly 变量名
myUrl=xm-cloud.cn #定义变量
echo $myUrl #输出变量
删除变量
变量被删除后不能再次使用;unset 命令不能删除只读变量。
myUrl=xm-cloud.cn #定义变量
unset myUrl #删除变量
echo $myUrl #输出变量
上述脚本没有任何输出
特殊变量
变量 | 含义 |
$0 | 当前脚本的文件名 |
$n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数$2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同. |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
$echo $$ #$表示当前shell进程的ID,即PID
运行结果:29949