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

shell 笔记一

[复制链接]

尚未签到

发表于 2018-8-25 06:35:23 | 显示全部楼层 |阅读模式
第一节:变量  大纲:
  2.1.1 本地变量
  2.1.2 环境变量
  2.1.3 变量替换
  2.1.4 位置变量
  2.1.5 标准shell变量
  2.1.6 特殊变量
  2.1.7 影响变量的命令
  2.1.8 引号
  2.1.9 运算符
  2.1.10 表达式替换
  2.1.11 运算符的优先级
  在进行讲解前,我们要知道什么是shell变量?
  其实linux下面的变量,linx下的shell变量和其它高级语言中的定义是一样的,都是放在内存中一定的存储单元,而这个存储单元里面存放这个变量的值,而这个值是可以改变的,我们就称它为变量.
  2.1.1 本地变量
  定义:是在用户现在的shell生命期的脚本中使用;
  例:[redhat@server redhat]$name="Red Hat Linux" #把变量设置为Red Hat Linux
  [redhat@server redhat]$echo ${name} or #显示变量内容
  =[redhat@server redhat]$echo $name #等同上面的语意
  Red Hat Linux #显示其设定内容,
  [redhat@server redhat]$set | grep "name" #查看刚才所设定的内容,或不加'grep "name"'查看用户自己所有的本地变量,
  [redhat@server redhat]$readonly name #把name这个变量设置为只读变量,不允许再次设置,这可参考变量定义;-_-!
  [redhat@server redhat]$name="He SenLin" #重新赋值
  bash:name:readonly variable #只读文件系统
  [redhat@server redhat]$readonly #查看系统存在的只读文件
  附:重新登录一下系统,再次用
  [redhat@server redhat]$echo ${name}
  #本地变量就不存在了,
  说明本地变量只能存活在用户shell的生命周期中,重登录就不在了,
  2.1.2 环境变量
  定义:环境变量用于所有用户进程,包括编辑器,脚本和应用,登录进程为父进程,shell中执行的用户进程均为子进程,不像本地变量只用于现在的shell.
  存在目录在所有用户的主目录下/.bash_profile或
  如何设置环境变量?第一种方法就是编辑上面的二个文件,还可以用"export"进行设定或更改;这可不像本地变量只需 name="Red Hat Linux"那样简单,但却可以把本地变量更改为环境变量;只须在本地变量结束后,输入:export ;例,我们把name由本地变量修改为环境变量,我们可以这样做;
  [root@server root]#name="Red Hat Linux" #本地变量
  [root@server root]#export name #变量name由本地升为环境
  当然也可以用下面这种方法;
  [root@server root]#export name="Red Hat Linux" #直接定义name为环境变量;
  定义后,可通过env进行查看,不知道上面的本地环境变量由哪个命令进行查看你记住了没有?,演示一下查看现在定义的环境变量;
  [root@server root]#env | grep "name"
  Red Hat Linux
  同样不加后面grep "name",这个参数也是查看所有的环境变量;更同样的是我们也可以运行readonly这个参数给name以只读属性;
  Tips:环境变量就是全部包含在本地变量中,注意一点,本地变量不能运行在全部进程中,只有环境变量可以,再不懂就联想一下人与自然吧;-_-!还是不会?用绝招:
  [root@server root]#you=myfriend #设置本地变量name为myfriend
  [root@server root]#echo ${you} #查看一下是否成功
  myfriend #成功
  [root@server root]#sh #更换shell环境等同重登录,这相当一个
  sh-2.05b#echo $you #用户子进程
  #没显示,说明不存在,真的不存在?
  sh-2.05b#exit #返回bash环境
  [root@server root]#echo $you #再次查看;
  myfriend #又出来了,怎么回事?
  [root@server root]#export you #把变量you设为环境变量;
  [root@server root]#sh #再试一次;
  sh-2.05b#echo $you
  myfriend #ok,you see?
  再不懂,,你就把我杀了吧,,什么,你不知道我住在哪?汗-_-!
  再补充一点,就是在sh进程中设置环境变量是可以写回bash环境中,因为bash是父进程,只有老的才有小的,小的怎么才能有老的哩?
  2.1.3 变量替换
  定义:用变量的值替换它的名字.
  查看方式:echo
  可以用echo显示可以单个变量的取值;
  [root@server root]#str="this is example" #设置本地变量
  [root@server root]#echo "can you see `echo $str`" #显示
  cat you see this is example #替换就到这了,不明白明再来
  变量替换续
  除了上面的这个方式以外还有五种哦;别急,一个一个来;-_-!
  格式 定义
  ${variable name} 显示实际值到variable name 1


运维网声明 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-556086-1-1.html 上篇帖子: linux shell 面试 下篇帖子: shell整理(30)====嵌套循环shell写找勾股数和shift命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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