1.给Shell变量赋值时,等号两边不能有空格,其格式为
变量名=值
2.若要给变量赋空值,可在等号后跟一个换行符,即缺省以上格式中“值”的部分
3.Shell变量没有细致的分类,,一个变量保存一个串,Shell不关心这个串的含义,只有在需要的时候才会使用一些工具程序将变量转换为明确的类型。
4.将变量定义为只读:
readonly 变量名
5.变量的引用:使用$来引用变量,若要输出上文定义的变量,可以使用以下方法:
echo $var
6.由双引号引起来的字符串中有变量的引用,会输出变量中存储的值;若由单引号引起来的字符串中有变量的引用,则会原样输出,即输出原字符串:
7.变量的输入:当脚本需要从命令行读取数据时,只需要在其中添加如下的read语句即可:
read 变量名
当脚本执行到该语句时,终端会等待用户输入,输入的信息会被保存到read之后的变量中。但是我只有在命令行里才能成功使用这个功能。在脚本文件里运行时虽然系统会等待用户输入,但是并不能成功读取数据
8.环境变量:为了区别于局部变量,环境变量中的字母全部大写。系统启动时Shell自动登陆,所以Shell中执行的用户进程均为子进程,环境变量可以用于所有用户进程。环境变量使用export设定或定义,也可以用这个指令把本地变量修改为环境变量:
export 变量名#把本地变量修改为环境变量
export 变量名=值#定义一个环境变量
9.位置变量:这个变量即执行脚本中对应脚本位置的变量。类似函数的参数,引用方法为$符号加上参数的位置,如$0,$1,$2。其中$0较为特殊,表示脚本的名称,其余的分别表示脚本中的第一个参数/第二个参数,以此类推,假设当前有一个名为loca的脚本,其内容为:
这里
$# 表示传入脚本的命令行参数个数
运行结果如图:
10.使用shift可以移动位置变量对应的参数,shift每执行一次,参数顺序左移一位,移出去的参数不可用。
11.Shell中的变量可以方便地在函数体中与函数外传递。但是我们也可以在函数内部使用与全局变量同名的局部变量,只需要在变量前添加local关键字即可,如:
运行截图: