bash学习之变量(二)

版权声明:如需转载,请注明出处: https://blog.csdn.net/qq_38701476/article/details/83866845

每一种语言都少不了变量,在学习完变量之后又有了许多新的理解,这里就详细说明一下变量。

1.变量分类
变量分为两种类型,系统变量(环境变量)和用户变量。系统变量是系统需要用到的变量,用户也可以用;用户变量是用户自己定义的变量,供用户自己去用。在bash shell中环境变量可以分为全局变量和局部变量。局部变量是仅在当下的shell中可以用,全局变量是之后所有shell中都可以用(包括当下shell)。用户变量的分类在程序中和其他c之类的语言分类相似。

2.用户变量
程序1:

#!/bin/bash
var=name
echo $var

运行结果:
在这里插入图片描述
程序说明:
第2行定义一个变量名为var,值为字符串name。注意bash中变量赋值的等号两边不能有空格。
当需要掉用变量的值时需要在变量名字前加上$字符,当在一些系统无法判断出具体的变量是还要用{}把变量给括起来以免产生歧义。
程序2:

#!/bin/bash
read name
echo $name
echo
read -p "hello :" var
echo $var
echo
read -t3 s
echo $s
echo

运行结果:
在这里插入图片描述
程序说明:
第2行说明系统要读入一个变量,并把值给后面的name中
第5行带有-p 的read可以允许读入多个变量,并切可以在前面加上一条注释信息
第8行-t 说明允许最长输入时间,单位秒。另外-s 是以密文信息读入,不显示,类似输入密码的时候。

3.一些特殊的变量

$+数字 :代表这命令行中传递过去的参数,类似c语言中年传递到main()中的参数,java中给String []arg 的一样。其中$0代文件名
程序3:

#!/bin/bash
echo $0
echo $1
echo $2

运行结果:
在这里插入图片描述
注:当系统参数大于9的时候再引用就要加{}了如${10}.
$# 返回参数个数 (不计文件名)
$? 脚本返回值
$@ | $* 两个广义上相同(具体差异可以自己去查),返回参数内容

到了这里已经初步了解了bash的的信息,并且掌握了bash的输入输出的基本命令。下面是系统的一些扩展知识,不感兴趣可以忽略哦。下一步的文章将会讲解bash的一些面向程序设计语言的语法结构的中级知识。

4.系统变量(扩展)

最初了解系统变量是在windows系统中,那时候还是第一次安装java环境,由于要给位置信息添加到环境变量种,从那时起一直到看完这个一直都以为环境变量就是位置信息^_^。看完这里才明白了原来是之前把变量看的太过于狭隘了,环境变量它也是一个变量,不对,是一类变量的统称,里面包含了许多的变量。而路径只不过是其中的一类而已,尤其是在一切皆文件的Linux系统更合乎所以。想要查看环境变量终端输入env即可查看所有系统变量。
环境变量的位置有有三个/etc/profile $HOME/.profile $HOME/bash .profile 。开机时启动顺序也是如此。(第三个我也没找到 ^_^)。
可以通过export导入到环境变量中,此时后续的shell中也可以运行,如果不导入则会报错,当不在想用改变量时,可以用unset取消变量。由于理论和我具体操作时候出现了差异(可能是我系统的问题,也可能是这里知识本身存在的问题,或者这里内容太过老旧,新系统有差异),因此这里就不在做具体说明。想深入了解的可以自己去查阅资料

猜你喜欢

转载自blog.csdn.net/qq_38701476/article/details/83866845