• shell脚本注意点


    1.等号两边不能有空格,例如:

    获取七天前的日期:

    before_7_day=`date -d "7 days ago" +%Y-%m-%d`

     2.自定义函数只能返回数值,不能返回数组、字符串等内容。如果需要生成字符串等结果,可以声明为全局变量,然后将值赋给全局变量,这样就可以在函数外访问

    get_string(){
        number1=1
        number2=2
        return $number1-$number2
    }

    返回错误:

    return: 1-2: numeric argument required

     修改:

    number
    
    get_string(){
        number1=1
        number2=2
        number=$number1-$number2
    }

     3.字符串拼接不用“+”

    例如:

    如果使用“+”:

    name1="chun"
    name2="tian"
    echo $name1+$name2

    输出为:

    chun+tian

    修改为:

    name1="chun"
    name2="tian"
    echo ${name1}${name2}

    输出:

    chuntian

     4. for循环使用

    5.${ }、#、##、%、%%使用范例

    假设定义了一个变量为,【代码如下】:

    file=/dir1/dir2/dir3/my.file.txt

    可以用${ }分别替换得到不同的值:

    ${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt

    ${file##*/}:删掉最后一个 /  及其左边的字符串:my.file.txt

    ${file#*.}:删掉第一个 .  及其左边的字符串:file.txt

    ${file##*.}:删掉最后一个 .  及其左边的字符串:txt

    ${file%/*}:删掉最后一个  /  及其右边的字符串:/dir1/dir2/dir3

    ${file%%/*}:删掉第一个 /  及其右边的字符串:(空值)

    ${file%.*}:删掉最后一个  .  及其右边的字符串:/dir1/dir2/dir3/my.file

    ${file%%.*}:删掉第一个  .   及其右边的字符串:/dir1/dir2/dir3/my

    【记忆的方法为】:

    # 是 去掉左边(键盘上#在 $ 的左边)

    %是去掉右边(键盘上% 在$ 的右边)

    单一符号是最小匹配;两个符号是最大匹配

    ${file:0:5}:提取最左边的 5 个字节:/dir1

    ${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2

    也可以对变量值里的字符串作替换:

    ${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt

    ${file//dir/path}:将全部dir 替换为 path:/path1/path2/path3/my.file.txt

    转自:https://blog.51cto.com/ganbing/2053565

  • 相关阅读:
    h5 在全屏iphonex中的适配
    http响应状态码301和302
    http协议
    画图-drawpoint and drawpath
    Android-自己定义meta-data扩展数据
    iOS应用公布Invalid Binary问题解决方式
    在线工具集合(新增cron quartz表达式在线生成……)
    SSH 占用数据库连接不释放问题
    Oracle数据库获取uuid函数
    Android Message handling (based on KK4.4)
  • 原文地址:https://www.cnblogs.com/shixisheng/p/11165485.html
Copyright © 2020-2023  润新知