Shell学习--(2)变量

来源:互联网 发布:网络打鱼游戏版本费 编辑:程序博客网 时间:2024/06/05 16:38
定义变量定义变量时,变量名不加美元符号($),如:
复制纯文本新窗口
  1. variableName="value"
variableName="value"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。

变量定义举例:

复制纯文本新窗口
  1. myUrl="http://see.xidian.edu.cn/cpp/linux/"
  2. myNum=100
myUrl="http://see.xidian.edu.cn/cpp/linux/"myNum=100

使用变量

使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:

复制纯文本新窗口
  1. your_name="mozhiyan"
  2. echo $your_name
  3. echo ${your_name}
your_name="mozhiyan"echo $your_nameecho ${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

复制纯文本新窗口
  1. for skill in Ada Coffe Action Java
  2. do
  3. echo "I am good at ${skill}Script"
  4. done
for skill in Ada Coffe Action Java do    echo "I am good at ${skill}Script"done

如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

推荐给所有变量加上花括号,这是个好的编程习惯。



重新定义变量已定义的变量,可以被重新定义,如:

复制纯文本新窗口
  1. myUrl="http://see.xidian.edu.cn/cpp/linux/"
  2. echo ${myUrl}
  3.  
  4. myUrl="http://see.xidian.edu.cn/cpp/shell/"
  5. echo ${myUrl}

只读变量使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

删除变量使用 unset 命令可以删除变量。语法:

复制纯文本新窗口
  1. unset variable_name


前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。

例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:

复制纯文本新窗口
  1. $echo $$
$echo $$
运行结果
29949

特殊变量列表变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。$#传递给脚本或函数的参数个数。$*传递给脚本或函数的所有参数。$@传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。$?上个命令的退出状态,或函数的返回值。$$当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

0 0
原创粉丝点击