zoukankan      html  css  js  c++  java
  • shell数组

    Shell 数组定义 ,在Shell中,用括号()来表示数组,
    
    数组元素之间用空格来分隔。由此,定义数组的一般形式为:
    
    node2:/root#cat a2.sh
    f01=(1,2,3,4)
    echo $f01;
    f02=(1 2 3 4)
    echo $f02
    
    node2:/root#sh ./a2.sh
    1,2,3,4
    1
    
    node2:/root#cat a2.sh
    f01=(1,2,3,4)
    echo $f01;
    f02=(1 2 3 4)
    echo $f02
    echo ${f02[@]}
    
    node2:/root#sh ./a2.sh
    1,2,3,4
    1
    1 2 3 4
    
    使用@或*可以获取数组中的所有元素,例如:
    ${nums[*]}
    ${nums[@]}
    两者都可以得到 nums 数组的所有元素。
    
    获取数组长度:
    
    利用@或*,可以将数组扩展成列表,然后使用#来获取数组元素的个数,格式如下:
    ${#array_name[@]}
    ${#array_name[*]}
    
    
    node2:/root#cat a2.sh 
    f01=(1,2,3,4)
    echo $f01;
    f02=(1 2 3 4)
    echo $f02
    echo ${f02[@]}
    echo ${#f02[@]}
    
    node2:/root#sh ./a2.sh
    1,2,3,4
    1
    1 2 3 4
    4
    
    ${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
    
    node2:/root#cat a3.sh
    aa='/nas/svn/deploy/20200229/afa_20200201.zip'
    echo ${aa##*/}
    node2:/root#sh ./a3.sh 
    afa_20200201.zip
    
    node2:/root#cat a4.sh 
    aa='afe_XXX.zip'
    if [[ $aa == *_XXX* ]]
    then
    echo '1111111'
    fi
    node2:/root#sh ./a4.sh 
    1111111
    
    &&是“与”的意思,||是“或者”的意思
    
    if [[ 1 > 3 ]]  && [[ 2 > 1 ]]
    
    then
    echo 'aaaaaaa'
    fi
    node2:/root#sh ./a5.sh 
    node2:/root#
    
    记忆的方法为:
    # 是 去掉左边(键盘上#在 $ 的左边)
    %是去掉右边(键盘上% 在$ 的右边)
     单一符号是最小匹配;两个符号是最大匹配
    
    
    ${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
    
    node2:/root#cat a6.sh 
    aa='afe_XXX.zip'
    echo ${aa/%_*}
    echo ${aa%_*}
    node2:/root#sh ./a6.sh 
    afe
    afe
    
  • 相关阅读:
    对于数据库表排他更新的理解
    小学数学题
    胜败兵家事不期
    ORACLE外键约束(FORIGEN KEY)
    spring客户端jsp与服务端交互方法
    nodejs学习笔记package.json
    关于viewport
    dl,dt,dd的用法
    304-NOT MODIFIED
    $(document).ready()和 window.onload的区别
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348523.html
Copyright © 2011-2022 走看看