zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    python 一个二维数组和一个整数,判断数组中是否含有该整数
    DDD 全称 “Domain-Driven Design”,领域驱动设计
    pytest + allure 生成测试报告
    AttributeError: module 'pytest' has no attribute 'allure'
    BDD的概念
    在im4java中使用GraphicsMagick
    缓存穿透与缓存雪崩
    Linux安装ImageMagick与JMagick完成过程及配置
    Windows/Linux下引用jar包,并用javac/java编译运行
    在CentOS4上安装JMagick
  • 原文地址:https://www.cnblogs.com/shixisheng/p/11165485.html
Copyright © 2011-2022 走看看