设为首页 收藏本站
查看: 819|回复: 0

shell编程(一)---变量

[复制链接]

尚未签到

发表于 2018-8-23 11:55:09 | 显示全部楼层 |阅读模式
  变量是内存空间,通过变量名引用变量的时候,称为命名的内存空间。
  定义一个变量,就是给变量分配一段编址的内存空间,给变量赋值,就是往内存空间里面填充数据。
  变量类型:事先定义好数据的存储格式和长度。不同的数据类型所占用的存储空间和存储格式也不一样。
  变量类型如:
字符类型。  
数值类型。分为整型、浮点型
  
日期和时间型。
  
布尔型。
  逻辑运算:与(and)、或(or)、非
and:&&    只要有一个为假,结果就为假。只有两者都为真,结果才为真。  
or:||     只要有一个为真,结果就为真。只有两者都为假,结果才为假。
  
非:!
  变量赋值方法:VAR_NAME=VAULE
  BASH变量类型
注意:  
1.脚本在执行时,会在当前shell下启动一个子shell进程。
  
2.命令行中启动的脚本会继承当前shell的环境变量。
  
3.系统自动启动的脚本(非命令行启动)就需要自我定义各种所需要的环境变量。
  环境变量:声明环境变量的格式export VARNAME=VALUE作用域:当前shell进程及其子进程。
  本地变量:声明本地变量的格式VARNAME=VALUE。作用域:对整个脚本进程或整个bash进程有效。
  局部变量:声明局部链路的格式local VARNAME=VALUE。作用域:只对当前的代码段有效。
  位置变量:$n,第n个位置变量,引用脚本中参数的位置的。如果n大于10,则要写成${n}
  特殊变量:bash内置的变量。如$?,保存的是上一个命令的执行状态返回值(范围是0-255),如果是0,则表示正确执行,如果是非0,则表示执行失败。1,2,127为系统预留。其他值则可以用户自已定义。
引用变量:${var_name},如果不至于引起变量名混淆的,{}可以省略。  示例:
[root@Server3 ~]# ANIMAL=tiger  
[root@Server3 ~]# echo "There is a $ANIMAL"
  
There is a tiger
  
[root@Server3 ~]# echo "There is a ${ANIMAL}"
  
There is a tiger
  
[root@Server3 ~]# echo "There are some $ANIMALs"
  
There are some
  
[root@Server3 ~]# echo "There are some ${ANIMAL}s"
  
There are some tigers
  
[root@Server3 ~]#
  环境变量:
  示例
[root@Server3 ~]# NAME=frame  
[root@Server3 ~]# export NAME
  
[root@Server3 ~]# echo $NAME
  
frame
  
[root@Server3 ~]# bash
  
[root@Server3 ~]# echo $NAME
  
frame
  
[root@Server3 ~]#
取消变量:unset 变量名  示例:
[root@Server3 ~]# echo $NAME  
frame
  
[root@Server3 ~]# unset NAME
  
[root@Server3 ~]# echo $NAME
  
[root@Server3 ~]#
查看shell中的变量:(包括环境变量和本地变量)  
set
  
查看当前shell中的环境变量:
  
printenv
  
env
  
export
  增加变量的内容:
  示例1:
[root@Server3 ~]# ANIMALS=pig  
[root@Server3 ~]# echo $ANIMALS
  
pig
  
[root@Server3 ~]# ANIMALS=$ANIMALS:tiger
  
[root@Server3 ~]# echo $ANIMALS
  
pig:tiger
  
[root@Server3 ~]# ANIMALS=$ANIMALS:sheep
  
[root@Server3 ~]# echo $ANIMALS
  
pig:tiger:sheep
  
[root@Server3 ~]#
  示例2:
[root@Server3 ~]# echo $PATH  
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  
[root@Server3 ~]# PATH=$PATH:/tmp
  
[root@Server3 ~]# echo $PATH
  
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
  
[root@Server3 ~]# PATH=/home:$PATH
  
[root@Server3 ~]# echo $PATH
  
/home:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
  
[root@Server3 ~]#
  

  
说明:PATH为变量名称,$PATH为引用PATH变量的内容。
  变量定义规则:
  1.不能和系统中的环境变量重名。
  2.变量名只能包含字母、数字、下划线,且不能以数字开始。
  3.最好做到见名知意。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555521-1-1.html 上篇帖子: shell 之 cat 命令 下篇帖子: shell 取时间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表