• shell笔记


    1. type commond #查看该命令是否是shell内置命令 例: type cd
    2. echo $$ #输出当前进行id
    3. . test.sh #在当前进程执行脚本(可以没有执行权限)
    4. echo $- #输出 shell 的执行方式 输出结果中包含i为交互式 不包含的为非交互式 . test.sh 为交互式 ./test.sh 为非交互式
    echo $PS1 #输出结果非空为交到式 . test.sh 为交互式 ./test.sh 为非交互式
    5. shopt login_shell #输出结果为on 为登录式, off为非登录式

    6. 变量: 每个变量都是字符串
    a=a or a='a' or a="a" #变量等号两边不能有空格 最常见的是加双引号 数字可以不用加引号
    echo $a or echo ${a} #使用变量 $ 推荐使用${a} echo "$a" #使用双引号包围可以把变量中的换行输出
    a=`ls` or a=$(ls) #把命令的执行结果赋值到变量
    readonly a #只读变量
    unset a #删除变量
    local a # shell的变量是全局变量, 如果要定义为局部变量需加local 类似于javascript
    export a=22 # 把变量导出到环境变量 对子进行有效 对多个shell进程无效
    7. 特殊变量:
    $0 #当前脚本文件名
    $n #接收参数
    $# #参数的个数
    $*/$@ #所有参数 "$*" #多个参数保存成一份数据 "$@" #多个参数保存的是多份数据可以用for循环出来
    $? #上一个命令的退出状态或返回值
    $$ #当前shell的进程ID

    8. 参数: shell 没有形参, 只有实参, 接收参数使用 $num 即$1 $2...

    9. 数据类型(字符串/数字)
    获取字符串长度: ${#str}
    字符串拼接: $a$b #只要放一起就行
    字符串指定位置截取: (截取方向都是从左到右)
    ${str: 2: 9} #从第二个开始截取(起始位置为0)9个字符
    ${str:0-13:9} #倒数第13个开始截取(倒数起始位置为1)9个字符
    ${str:2} #从第二个字符截取所有字符
    指定字符串截取:
    ${str#*aa} #截取第一个aa(从左往右数)右边的所有字符串
    ${str##*aa} #截取最后一个aa(从左往右数)右边的所有字符串
    ${str%aa*} #截取第一个aa(从右往左数)左边的所有字符串
    ${str%%aa*} #截取最后一个aa(从右往左数)左边的所有字符串

    10. 数组(只支持一维数组不支持多维数组)
    arr=(1 2 3 abc) # 定义数组
    ${arr[1]} #获取元素
    ${arr[*]}/${arr[@]} #获取数组中所有元素
    ${#arr[*]}/${#arr[@]} #获取数组的长度
    new_array=(${arr[*]} ${arr[*]})/new_array=(${arr[@]} ${arr[@]}) #数组合并成一个数组
    unset arr[num]/unset arr #删除数组中的元素或整个数组

    11. 关联数组
    定义: declare -A arr=(["a"]="abc", ["b"]="bcd")
    设置值: arr["c"]="ccc"
    访问值: $(arr["a"])
    获取所有元素值: ${arr[*]} / ${arr[@]}
    获取所有下标: ${!arr[*]} / ${!arr[@]}
    获取数组的长度: ${#arr[*]} / ${#arr[@]}
    数组的遍历:
    echo "输出key和值"
    for key in ${!arr[*]}
    do
    echo "${key}=>${arr[$key]}"
    done

  • 相关阅读:
    redis消息队列
    redis数据结构及使用场景
    HTTP状态码
    ASP.NET处理管道初谈
    kNN(k邻近算法)
    HeadFirst
    Python学习笔记——进程、线程、网络编程
    Python学习笔记-20180428——处理JSON
    Python学习笔记-20180426
    基于百度地图的 JavaScript API示例学习
  • 原文地址:https://www.cnblogs.com/longfeiPHP/p/16017887.html
Copyright © 2020-2023  润新知