shell脚本学习-入门篇 no.2

基本命令

  • 位置参数,特殊变量
    • $1 $2 .. $n ${10} ${23} .. 接收入参

    • $0 当前文件名

    • $# 入参个数

    • $* 所有入参,空格间隔;使用双引号包围时,还是一个整体

    • $@ 所有入参,空格间隔;使用双引号包围时,可以循环取出
      image.png
    • $? 上个命令的退出状态(调用func或者执行sh文件后)

    • $$ 当前shell进程ID

  • 命令替换
    • var_name = `command` 可以在多种shell中使用
    • var_name = $(command) 易读,支持内部嵌套,仅在bash shell中有效
    • 引用时使用双引号,防止换行错乱
  • 字符串
    • 定义

      • 单引号 原样输出,内部不能出现单引号
      • 双引号 可以包含变量,双引号需要转移
      • 没有引号 可以包含变量,但是不能有空格
      • 获得字符串长度 ${#str}
        • str1=abc$n str2="abc \"abc\" $n"
        • str3='abc $n'
    • 拼接

      • str1=$name$url
      • str2="$name $url"
      • str3=$name" : "$url
      • str4="$name : $url"
      • str5="${name}Script : ${url}index"
    • 截取 略

  • 数组
    • arr=(1,2,"222")
    • arr[6] = 4
    • 获取元素 ${arr[5]} 获取所有元素 ${arr[@]} ${arr[*]}
    • 数组长度 ${#arr[*]}
    • 数组元素的长度 ${#arr[4]}
    • 数组拼接
      array_new=({array2[@]})
      array_new=({array2[*]})
    • 删除 unset arr[1] 或者 unset arr
  • 内建命令
    • 别名
    • echo -n 不换行 -e 输出转义字符
    • -e和\c 配合可以强制不换行 echo -e "abc \c"
    • 退出 exit 8 退出并返回退出状态 程序要作为解释器参数 /bin/bash aaa.sh 可以用 echo $?获取状态
    • ulimit 资源限度
      • ulimit -a 查看资源软限制
      • ulimit -a -H 查看资源硬限制(文件大小,内存限制,消息队列,栈大小,占用cpu时间等等)
      • ulimit 也可以选择设置软限制或者硬限制
      • 如果需要永久保存需要修改/etc/security/limits.conf

你可能感兴趣的:(shell脚本学习-入门篇 no.2)