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=({array1[@]} \{array2[@]})
      array_new=({array1[*]} \{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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我羡慕身边那些文思泉涌的朋友,写一手好文不过是信手拈来,而我们这样半吊子的低逼格写手,最擅长的就是写不出又睡不着,...
    且癫狂且芬芳阅读 523评论 0 2
  • --->html内容: --->JS内容: rem转换文件 --->CSS内容: 初始化样式文件 注意事项: 模板...
    royluck阅读 540评论 0 1
  • 当青春遇上大学,会交织出怎样的华彩乐章? 大学是实现梦想的地方,而真正的梦想就是对更好生活的美好期望:可求学圆梦,...
    老鼠ai土豆阅读 497评论 0 1