zoukankan      html  css  js  c++  java
  • 小鸟初学Shell编程(六)变量赋值

    变量的意义

    我们在使用Linux命令或脚本的时候,会有一些输出,那么这些输出的信息可以用变量临时存储,以备我们下一条命令或脚本使用。


    变量的定义

    变量的定义建议用一个有意义的英文单词来代表变量,不要使用简单的字母ab 这类的变量名定义。因为我们写好Shell脚本实际上是要给人看的,所以我们定义好的变量,是希望变量有具体的含义,能让阅读Shell脚本人能轻松的明白。

    变量的命名规则:

    • 字母、数字、下划线
    • 不以数字开头

    变量的赋值

    为变量赋值的过程,称为变量替换

    Shell脚本里变量是不区分变量类型的

    变量赋值的规则:变量名=变量值
    var=123
    注意:赋值的等号左边右边是不能有空格的,如果出现空格那么执行的时候回进行报错

    [root@lincoding ~]# var=123
    [root@lincoding ~]#
    [root@lincoding ~]# var =123
    -bash: var: command not found
    [root@lincoding ~]# var = 123
    -bash: var: command not found
    

    因为出现空格,Shell会认为前面的是命令而不是变量

    使用let为变量赋值
    [root@lincoding ~]# let num=10+10
    [root@lincoding ~]# echo $num
    20
    

    let可以做简单的数字运算

    将命令赋值给变量
    [root@lincoding ~]# ls_cmd=ls
    [root@lincoding ~]# ${ls_cmd}
    anaconda-ks.cfg  install.log  install.log.syslog
    

    还可以使用把命令赋值给变量,在使用变量的时候,相当于执行命令

    将命令结果赋值给变量,使用$()或者``
    [root@lincoding ~]# file_list=$(ls /tmp)
    [root@lincoding ~]# echo ${file_list}
    pear yum.log
    
    [root@lincoding ~]# file_list=`ls /tmp`
    [root@lincoding ~]# echo ${file_list}
    pear yum.log
    

    使用这种方式的好处,就是避免重复执行相同命令,增加服务器的开销,而是只执行一次命令,并把命令的结果保存到变量,做下一步的使用

    变量值有空格等特殊字符可以包含在双引号""和单引号''
    [root@lincoding ~]# var="1 2 3"
    [root@lincoding ~]# echo $var
    1 2 3
    
    [root@lincoding ~]# var='a b c'
    [root@lincoding ~]# echo $var
    a b c
    

    当字符串需要双引号时,需要用单引号来定义字符串

    [root@lincoding ~]# var='"a" "b" "c"'
    [root@lincoding ~]# echo $var
    "a" "b" "c"
    

    当字符串需要单引号时,需要用双引号来定义字符串

    [root@lincoding ~]# var="'a' 'b' 'c'"
    [root@lincoding ~]# echo $var
    'a' 'b' 'c'
    

    双引号和单引号还有个区别,就是单引号里字符串不管是特殊字符都会被解释成普通的字符串

    [root@lincoding ~]# string="${var} , Shell"
    [root@lincoding ~]# echo $string
    hello , Shell
    [root@lincoding ~]# string='${var} , Shell'
    [root@lincoding ~]# echo $string
    ${var} , Shell
    

    小结

    在Shell里变量的定义是不需要定义类型的,变量赋值的时候等号两边不能有空格,变量可以赋值Linux的命令,也可以赋值运行Linux命令返回的结果输出内容,也可以做简单的数字计算,并双引号和单引号定义的字符串是有一定的区别的,单引号定义的字符串都会被解释成普通的字符串,不管是否有特殊字符。


  • 相关阅读:
    单例模式
    简单的WPS二次开发脚本
    使用DevExpress改变WinForm皮肤(VS)
    步入DevExpress的使用(VS)
    设置PdfPTable与标题间的距离
    tar: Removing leading `/’ from member names
    MySQL关闭过程详解和安全关闭MySQL的方法
    Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
    解决Centos关闭You have new mail in /var/spool/mail/root提示
    hping3命令
  • 原文地址:https://www.cnblogs.com/xiaolincoding/p/11615688.html
Copyright © 2011-2022 走看看