Shell 编程语言是一种非类型的解释型语言,不像 C /Java 需要事先声明变量。在 Shell 中,可以使用赋值符号(=)为变量赋值。Shell 变量可以分为两类:局部变量和环境变量。局部变量只在创建它们的 Shell 脚本中使用,而环境变量可以在创建它们的 Shell 及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用 Shell 变量。
例如,在脚本中定义 A=123,表示定义了一个名为 A 的变量,它的值为 123。在脚本中引用变量时,可以使用 $A。将变量放在字符串中会产生相应的效果,例如:
代码语言:javascript复制#!/bin/bash
# Author wugk 2014-06-10
A=123
echo "Printf variables equal is $A"
执行脚本 sh test.sh
,结果将会显示:Printf variables equal is 123
。这里简单地理解变量,相当于定义了一个别名-名称,引用时加上 $
符号即可。
例如,定义变量 name=wuguangke
,执行 echo $name
将会显示 wuguangke
。
Shell 常见的系统变量解析如下:
$0
:当前程序的名称。$n
:当前程序的第 n 个参数,n=1,2,…9。$*
:当前程序的所有参数(不包括程序本身)。$#
:当前程序的参数个数(不包括程序本身)。$?
:命令或程序执行完后的状态,一般返回 0 表示执行成功。$UID
:当前用户的 ID。$PWD
:当前所在的目录。
以下是一个测试常用变量的脚本示例 auto_var.sh
:
#!/bin/bash
#auto print variables
#by wugk 2014-09
echo -e '