• 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
    
  • 相关阅读:
    scp远程文件传输
    ssh远程登录
    PHP PDO使用
    Linux引导流程
    Samba服务器搭建
    linux ftp服务器搭建
    NfS服务的搭建
    Discuz! X2.5数据库字典【转载】
    javaSctipt基础
    压缩文件 compress files 以7z 格式及解压 或者别的格式
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348523.html
Copyright © 2020-2023  润新知