经过了linux系统命令的学习之后,下一步就是不如shell编程的学习了,在此之前一些必要的准备工作还是不能少的,今天我们就来总结一下有关变量的相关知识
变量分了很多种,我们在此将其分为2类:用户自定义变量和环境变量
那么两者的区别在哪儿呢? 用户自定义变量,只能在当前的shell窗口使用,而环境变量可以在当前shell及其子shell下使用
知道了两者的区别,接下来我们就应该了解一下两者的定义和使用了
变量赋值:
格式:【变量名】=【变量值】 (此处不可加空格,变量值如果有空格,需要加双引号)
注:这个变量值为字符串类型,而不是整形或者浮点型
调用变量:echo $【变量名】 调用时需要加$,定义时不加$
变量叠加:
格式:x="$x"【新加的数】 或者 x=${x}【新加的数】 例如:x="$x"456 或者 x=${x}456 意思是,如果原来x=123,则现在x=123456
查看变量:set (所有变量) env (只能查看环境变量)
删除变量:unset 【变量名】 注意:这里变量名前面,不加$
以上是基本变量的定义和使用方式,而环境变量在此基础上稍做改变就可以了
环境变量的设置:
格式:export 【变量名】=【变量值】 或者 【变量名】=【变量值】 export 【变量名】
注:环境变量的删除和用户自定义的删除一样,但是如果在父shell中定义的,那么在子shell中则无法删除,必须在父shell中删除
以上这些变量的定义和设置都是临时的,也就是说如果电脑重新启动了,这些临时变量都会没有用了
接下来这部分的变量,可以说是shell编程里面的变量,我们称之为预定义变量:(意思是预先定义好的在脚本中运行的变量)
$n:表示预定义变量。$表示脚本本身,之后每一个【空格】之后表示下一个参数,如$1,$2等 例如: ./text.sh 11 22 则在脚本text.sh中$1将会被赋值为11,$2为22
当参数大于10以后,后面的规则为${【数字】} 例如: ${10}
在有预定义变量的shell脚本中,有一下的一些符号调用参数:
下面的这些调用方式,不仅仅可以在shell脚本中使用,也可以在命令行中直接使用,用于一些简单的命令判断(当然一般没必要用)
基本的一些变量的知识就到此为止了,下面我们介绍2个相关的命令
read命令:shell脚本中的控制命令
格式:read【选项】【变量名】
常用参数:
注:如果是图形界面,则没有用,只能在纯命令行界面有用,且必须是本机终端,ssh登录是不行的
如果想在远程登陆上修改,可以修改/etc/issue.net文件,但是转义字符没有用,同时修改/etc/ssh/sshd_config文件中的Banner一行,修改为:Banner /etc/issue.net
当然还有简便的方法就是,修改 /etc/motd文件(默认可能是没有的)直接在这个文件中修改可以同时修改本机和ssh登录界面信息(建议使用)这部分的内容有点杂,可以当做查阅手册观看,特别是变量那个部分有点不好理解,可以自己多试试,反正都是临时变量,大不了重新登录嘛。