基本命令
- 位置参数,特殊变量
$1 $2 .. $n ${10} ${23} .. 接收入参
$0 当前文件名
$# 入参个数
$* 所有入参,空格间隔;使用双引号包围时,还是一个整体
-
$@ 所有入参,空格间隔;使用双引号包围时,可以循环取出
$? 上个命令的退出状态(调用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