sell基础2.0

88 阅读2分钟

判断语句

if语句格式:   可以嵌套使用

if [   ]  then

elif [   ]   then

else

fi


    判断语句:

    -gt   //是否大于

    -ge   //是否大于等于

    -eq   //是否等于

    -a    //判断文件是否存在

    =   //是否等于

    >   //ascii码是否大于ascii码    若 两边数值没有 空格 则为 赋值

    <   //是否小于

    !=   //是否不等于



case expression in

    判断式1 )

        commands1 ;;

    判断式2 )

        commands2 ;;

    ...

    判断式N )

        commandsN ;;

    * )

        default_commands ;;

esac 

数组

数组的定义

数组名=(value1 value2 value3) 值 需使用空格隔开

数组名=([0]=value [1]=value [2]=value ...)

 

列表名="value0 value1 value2 ..."

数组名=($列表名)

 

数组名[0]="value"

数组名[1]="value"

数组名[2]="value"

 

值 添加 引号可引入 字符值  “”可引用变量   ‘’

 

数组的使用

${数组名[1]}      显示下标为 1 的值

${数组名[@]}    @ 与 *  代表数组中所有的内容

${#数组名[@]}  显示下标个数

${数组名[@或*]:起始位置:长度}   从起始位输出指定长度的值

echo ${数组名[@或*]/查找字符/替换字符}  输出时候替换指定内容

       替换数组内容 需重新定义 数值

 

删除数组

unset 数组名   删除 指定数组

unset 数组名[下标]  删除 数组内指定数值

 

追加 数值

array_name[index]=value

 

array_name[${#array_name[@]}]=value

 

array_name=("${array_name[@]}" value1 ... valueN)

双引号不能省略,否则,当数组array_name中存在包含空格的元素时会按空格将元素拆分成多个

不能将“@”替换为“”,如果替换为“”,不加双引号时与“@”的表现一致,加双引号时,会将数组array_name中的所有元素作为一个元素添加到数组中

 

array_name+=(value1 value2 value3 value4 ... valueN)

循环

格式

for  变量名 in expression ;

  do

done



while  [ expression ]

  do

done

循环退出

exit        //结束循环

continue   //结束某次循环

break     //跳出当前循环层

函数

格式

function 函数名 {

   命令序列

}



函数名() {

   命令序列

}



function 函数名 (){

   命令序列

}

  使用函数名 以此调用 函数

查询函数列表

declare -F   //查看当前已定义的函数名

declare -f   //查看当前已定义的函数定义

declare -f func_name    //查看指定当前已定义的函数名

declare -F func_name   //查看当前已定义的函数名定义

删除函数

unset 函数名