• Shell变量


    第一个shell脚本

    #!/bin/bash
    echo "Hello World !"

    #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell

    将上面的代码保存为 test.sh,并 cd 到相应目录

    chmod +x ./test.sh  # 使脚本具有执行权限
    ./test.sh  # 执行脚本
    

    Shell 变量

    your_name="runoob.com"
    

    除了显式地直接赋值,还可以用语句给变量赋值,如:

    for file in `ls /etc`
    

    以上语句将 /etc 下目录的文件名循环出来

    使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

    your_name="qinjx"
    echo $your_name
    echo ${your_name}
    

    变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界

    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变

    #!/bin/bash
    myUrl="http://www.w3cschool.cc"
    readonly myUrl
    myUrl="http://www.runoob.com"
    

    使用 unset 命令可以删除变量。语法:

    unset variable_name

    变量被删除后不能再次使用。unset 命令不能删除只读变量

    单引号
    str='this is a string'
    单引号字符串的限制:
    • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
    • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)
    双引号
    str="Hello, I know your are "$your_name"! 
    "
    双引号的优点:
    • 双引号里可以有变量
    • 双引号里可以出现转义字符
    获取字符串长度
    string="abcd"
    echo ${#string}  # 输出 4
    
    提取子字符串
    以下实例从字符串第 2 个字符开始截取 4 个字符:
    string="runoob is a great site"
    echo ${string:1:4}  # 输出 unoo
    
    查找子字符串
    查找字符 "i 或 s" 的位置:
    string="runoob is a great company"
    echo `expr index "$string" is`  # 输出 8
    注意: 以上脚本中 "`" 是反引号,而不是单引号 "'"

    bash支持一维数组(不支持多维数组),并且没有限定数组的大小

    在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:
    array_name=(value0 value1 value2 value3)
    
    读取数组元素值的一般格式是:
    valuen=${array_name[n]}
    使用@符号可以获取数组中的所有元素,例如:
    echo ${array_name[@]}
    获取数组长度的方法与获取字符串长度的方法相同,例如:
    # 取得数组元素的个数
    length=${#array_name[@]}
    # 或者
    length=${#array_name[*]}
    # 取得数组单个元素的长度
    lengthn=${#array_name[n]}
    
    以"#"开头的行就是注释,会被解释器忽略,sh里没有多行注释,只能每一行加一个#号
    如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?
    每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果
  • 相关阅读:
    对象池使用时要注意几点
    Flash3D学习计划(一)——3D渲染的一般管线流程
    714. Best Time to Buy and Sell Stock with Transaction Fee
    712. Minimum ASCII Delete Sum for Two Strings
    647. Palindromic Substrings(马拉车算法)
    413. Arithmetic Slices
    877. Stone Game
    338. Counting Bits
    303. Range Sum Query
    198. House Robber
  • 原文地址:https://www.cnblogs.com/freescience/p/7298086.html
Copyright © 2020-2023  润新知