卷前:整理一些工作学习中遇到的不怎么记得的shell命令

#!/bin/bash

#declare(选项)(参数)
declare -i num #声明数值型变量
declare -a arr #声明数组型变量

arr["key"]="value"
arr["name"]="password"
arr["admin"]="oadmin"
arr["nononno"]="this is nonono key"

#$加井号,取当前shell文件bash执行时后面跟的参数个数
#$加星号,取当前所有参数
if [[ $# == 0 ]]; then 
    fun1
elif [[ $# == 1 ]]; then
    fun ${1}
elif [[ $# > 1 ]]; then
    echo
fi

#普通函数
fun1{
    echo "函数也可以不加function";
}
count=0
fun2{
    #可以直接执行外部shell命令
    count='docker ps | grep ${1} | wc -l'
    #管道之后 grep默认查系统中所有进程消息中指定名称进程 这里便是查docker容器ps返回的所有容器列表消息
    #wc默认统计-c字节数、-l行数、-w字数 这里便可以统计grep返回的行数并最终给到count计数变量
}
function fun{
    if [ "admin" == ${1} ]; then
        echo
    elif [ "nonono" == ${1} ]; then
        echo ${arr[${1}]} #输出key为nonono的值
    else
        echo ${arr[@]} #输出数组中所有值
    fi
}
dual{
    #FOR循环 加感叹号取数组(map)的key,不加是取value,加@是取所有
    for ar in ${!arr[@]}
    do
        echo $ar
    done
}
cd `dirname $0`
echo `pwd`
#放在脚本中执行可以返回当前脚本所在目录

#放一块也可以,用dollar符括起来
cd $(dirname $0) && pwd

 

卷后:持续更新