只读变量
使用readonly命令可以将变量定义为只读变量,只读变量的值不允许被修改。
#!/bin/bash
var1=1111
echo "$var1" #1111
var1=2222
echo "$var1" #2222
readonly var1
var1=3333 #var1: readonly variable
echo "$var1" #2222
删除变量
使用 unset 命令可以删除变量,删除后的变量不能再次使用。(不可以删除只读变量)
#!/bin/bash
var1=1111
readonly var2=2222
echo "$var1" #1111
echo "$var2" #2222
unset var1
unset var2 #cannot unset: readonly variable
echo "$var1" #输出为空
echo "$var2" #2222
shell特殊变量
变量 | 含义 |
---|---|
$0 | 当前脚本的文件名 |
$n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" “)包含时,都以”$1" “ 2 " … " 2" … " 2"…"n” 的形式输出所有参数。
但是当它们被双引号(" “)包含时,”$*" 会将所有的参数作为一个整体,以"$1 $2 … n " 的 形 式 输 出 所 有 参 数 ; " n"的形式输出所有参数;" n"的形式输出所有参数;"@" 会将各个参数分开,以"$1" “ 2 " … " 2" … " 2"…"n” 的形式输出所有参数。