shell变量的使用
Posted winifredhpcl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell变量的使用相关的知识,希望对你有一定的参考价值。
转载请标明http://www.cnblogs.com/winifred-tang94/
shell环境中变量有三种类型:
a、 环境变量;可以在shell脚本中直接利用“$环境变量名称”的形式引用。
b、 用户自定义变量;不需要事先定义,通常情况下,使用变量的时候直接对变量赋初值。变量名称=变量初始值(注意:变量名称的要求——首字符必须是字母,可以用下划线,但是不能有标点符号和空格,不能使用shell里的关键字)
c、 系统全局变量;代表了特定含义,不能被用户修改。一般来说,主要的全局变量包括以下几个:
$#:执行shell脚本时,命令行参数个数,不包括脚本本身。
$?:执行上一条shell命令的返回值(退出状态,大部分命令执行成功返回0,失败返回1,不过也有一些其他命令返回其他值标识其他错误)。
$0:shell脚本程序自身的名称。同时,$1代表shell命令行中第一个参数,$2代表第二个参数,$3代表第三个参数,以此类推。
$*:传递给脚本或函数的所有参数。
$$:当前shell进程ID,就是当前脚本所在的进程ID。
要在脚本中使用变量则是利用“$变量名称”的方法。
Eg.创建一个脚本计算两数之和
值得注意的一点:在使用expr进行运算时,运算符两边要记得加空格。
结果是:
一开始出错如下:
原因:这个脚本文件需要除了脚本本身以外的参数,运行脚本的时候没有输入参数。
$* 和 $@的区别:
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。 但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
Eg.
以上是关于shell变量的使用的主要内容,如果未能解决你的问题,请参考以下文章