zoukankan      html  css  js  c++  java
  • 2.5.2 变量

        变量(variable)就是为某个信息片段所起的名字,例如 first_name 或 driver_lic_no 。
     
        所有程序语言都会有变量,Shell也不例外。每个变量都有一个值(value),这是由你分配给变量的内容或信息。在Shell的世界里,变量值可以是(而且通常是)空值,也就是不含任何字符。空值就是null。
     
        Shell变量的名称的开头是一个字母或下划线,后面可以接着任意长度的字母、数字或下划线。变量名称的长度并不限制。Shell变量可用来保存字符串值,所能保存的字符串长度没有限制。
     
            [many@avention my_sh]$ myvar=this_is_a_long_string_that_does_not_mean_much     分配变量值
            [many@avention my_sh]$ echo $myvar                                                                           打印变量值
            this_is_a_long_string_that_does_not_mean_much
     
        变量赋值的方式:先写变量名,紧接着=,最后是变量值。=前后完全没有任何的空格。如变量值中间含有空格,请为变量值加上引号。
            [many@avention my_sh]$ first=isacc middle=bashevis last=singer                      单行可以进行多个变量定义
            [many@avention my_sh]$ fullname="isaac bashevis singer"                                 变量值中包含空格时需要引号
            [many@avention my_sh]$ oldname=$fullname                                                      此处不需要引号
                          
        变量引用的方式:需于变量名称前面加上 $ 字符。
            [many@avention my_sh]$ echo $oldname
            isaac bashevis singer
     
        当变量作为第二个变量的新值时,不需要使用双引号,但是使用双引号也可。但将几个变量连接起来时就需要使用双引号。
            [many@avention my_sh]$ fullname="$first $middle $last"
            [many@avention my_sh]$ echo $fullname
            isacc bashevis singer
     
     
    shell字符串:
        shell编程中最常用的数据类型(除了数字和字符串,也没啥其他类型可用了),字符串可以用单引号、双引号、也可以不要引号。
     
        单引号字符串的限制:
            1 单引号中的任何字符都会原样输出,单引号字符串中的变量是无效的;
            2 单引号字符串中不能出现单引号(不能用转义字符)
     
        双引号的优点:
            1 双引号中可以有变量
            2 双引号中可以出现转义字符
     
     
     
    在定义变量时,如果某个变量定义过后不允许改变变量的值,可以将其设置为只读变量
    myUrl="http:/www.baidu.com"
    readonly myUrl    
     
     
    删除变量用unset命令,注意该命令不能删除只读变量
     
     
    变量类型:
        1 局部变量:在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能跟访问局部变量。
        2 环境变量:所有的程序,包括shell启动的程序,都能访问环境变量。必要的时候shell脚本也能定义环境变量。
        3 shell变量:是由shell程序设置的特殊变量,其中一部分是环境变量,另一部分是局部变量。
     
     
    拼接字符串:
    [many@avention test]$ export your='2000'
    [many@avention test]$ echo $my$your
    10002000
     
    获取字符串的长度:
    [many@avention test]$ echo ${#your}
    4
     
    提取子字符串:
    [many@avention test]$ echo ${your:1:2}
    00
     
    查找子字符串:
    查找字符串i的位置,子字符串的首字符第一次出现的位置。
    [many@avention test]$ string="avention is a great company"
    [many@avention test]$ echo `expr index "$string" i`
    6
     
     
     
     
     
  • 相关阅读:
    Daily Scrumming 2015.10.20(Day 1)
    Buaaclubs项目介绍
    [转载] Linux创建用户后,切换用户报This account is currently not available
    NetFPGA-1G-CML从零开始环境配置
    Digilent Xilinx USB Jtag cable
    OVS流表table之间的跳转
    Linux换源
    Scapy安装以及简单使用
    Do in SDN
    KMP算法
  • 原文地址:https://www.cnblogs.com/avention/p/9678081.html
Copyright © 2011-2022 走看看