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

通过shell脚本来解释变量

[复制链接]

尚未签到

发表于 2018-8-29 10:59:58 | 显示全部楼层 |阅读模式

  •   变量赋值、替换等
  #!/bin/bash
  #1.单变量赋值
  variable1=33           #将变量variable1赋值为33
  echo ${variable1}      ##第一种显示方法为${variable1}
  echo $variable1        ##第二种显示方法为$variable1
  variable2="hello world"  #将变量variable2赋值为"hello world",需要用双引号,避免出现字符分隔
  echo $variable2
  #****************************************************************************
  #2.变量套变量赋值
  variable4="We are saying $variable2"  #变量赋值中使用另一个变量$variable2
  echo $variable4
  #*****************************************************************************
  #3.清除变量,但不对变量初始化
  unset variable4          #清除variable4变量
  echo $variable           ##空白行表示variable4变量未被初始化
  #*****************************************************************************
  #4.符号:+和符号:- 相同点与区别
  #相同点:不能对已经赋值过的变量重新赋值
  colour=black                                  #对变量colour赋值
  echo "The Background is ${colour:=blue}"      ##:=符号的用法:表示对未赋值的variable,将value赋值给它
  echo "The Background is ${colour:-blue}"      ##:-符号的用法:表示对未赋值的variable,将value赋值给它,但value值不储存到variable对应的地址空间
  #区别:
  unset colour                                 #将变量colour的赋值清除
  echo "The Background is ${colour:-blue}"      ##用:-符号对colour赋值
  echo $colour                                 ##colour没有真正赋值
  echo "The Background is ${colour:=blue}"     ##用:=符号对colour赋值
  echo $colour                                 ##colour赋值了
  #*******************************************************************************
  #5.符号+  对已赋值的variable,重设其值
  echo ${colour+red}    ##对已经赋值的colour,重新赋值为red,临时赋值
  echo $colour          ##显示原来的赋值
  #******************************************************************************
  #6.?或:?   对未赋值的variable,显示系统错误信息
  ##变量color是否赋值,如果已经赋值,就显示赋值,没有赋值就显示-bash: b:parameter null or not set
  echo ${colour?}   ##变量colour已经赋值了,下面会显示赋值
  unset colour      ##清除colour赋值赋值
  echo ${colour?}   ##colour没有赋值,下面会显示-bash: b:parameter null or not set
  #/bin/bash
  colour=blue        ##将变量colour赋值
  echo colour
  read only colour   ##将变量colour赋值为只读
  colour=black       ##将变量colour重新赋值,发现无法赋值
  readonly           ##查看系统中所有的只读变量
  =========================================================
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  变量的参数使用
  #!/bin/bash
  echo "The script name is: $0"      # $0表示脚本本身
  echo "Parameter #1: $1"            # $1表示第1个参数,后面依次类推
  echo "Parameter #2: $2"
  echo "Parameter #3: $3"
  echo "Parameter #4: $4"
  echo "Parameter #5:$5"
  echo "Parameter #6: $6"
  echo "Parameter #7: $7"
  echo "Parameter #8:$8"
  echo "Parameter #9: $9"
  echo "Parameter #10: ${10}"    # ${10}用花括号
  echo "-------------------------"
  echo "The number of command line parameters is: $#"   # $#表示传递到脚本的参数数量
  echo "All the command line parameters are: $@"        # $@或$*表示传递到脚本的所有参数

  echo "The process>  echo "Did this script have any errors $?"             # $?表示命令的退出状态,0表示没有错误 ,非0 表示有错误
  #position脚本说明$0,$1,$2,...,${10},$*,$#,$$,$?
  #这里用cat tr cut head tail sed awk less more paste来表示$1到${10}这10个参数
  ========================================================
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  父进程和子进程的关系
  #father.sh:该脚本输出自身进程及调用子进程
  #!/bin/bash
  #输出父进程号

  echo "Father Process>  #定义本地变量并输出
  localvar="Define a local variable."
  echo "localvar=$localvar"
  #定义环境变量并输出
  ENVVAR="Define a environment variable."
  export ENVVAR
  echo "ENVVAR=$ENVVAR"
  #调用child.sh脚本,即创建子进程
  $PWD/child.sh
  #child.sh执行完毕,输出相关变量值
  echo "Return to father process: $$"
  echo "localvar=$localvar"
  echo "ENVVAR=$ENVVAR"
  #child.sh:该脚本输出自身进程号及父进程号、重新定义本地变量和环境变量
  #!/bin/bash
  #输出自身进程号及父进程号

  echo "Chile Process>
  echo "My Father Process>  #输出本地变量和环境变量的当前值
  echo "localvar=$localvar"
  echo "ENVVAR=$ENVVAR"
  #重新定义本地变量和环境变量
  localvar="Redefine this ocal variable."
  ENVVAR="Redefine this environment variable."
  echo "localvar=$localvar"
  echo "ENVVAR=$ENVVAR"


运维网声明 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-558095-1-1.html 上篇帖子: unix shell编程摘记系列(一) 下篇帖子: shell脚本的引用用法说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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