1.shell变量--字符串/数字
- 只读变量: readonly 变量名,只读变量不可以修改
- 删除变量:unset 变量名,unset不能删除只读变量
- \ 转义字符:echo "my name is "$my_name"" --> my name is "sanbai"
- 只有双引号中的$变量才会去转换,单引号原样输出;只有双引号中才可以使用转义字符
- 字符串拼接:直接双引号,echo "hello "$my_name" !"---> hello sanbai !
- 获取字符串长度:echo $
- 提取子字符串,类似于python中的切片操作:echo ${xuanyan:2:-3},下标取值,也是左闭右开的
- 查看字符位置:echo
expr index "$变量名" 指定字符
得到的数字不是下标,而是实际的第x个字符
2.shell数组
- shell中只支持一维数组
- 定义数组:student_array=(sanbai xiaoran ake baili)
- 数组取值:echo $
- 获取数组所有元素:echo ${student_array[@]} 或者 echo $
- 获取数组长度:echo ${#student_array[@]} 或者 echo $
- 获取数组指定元素的长度:echo $
3.shell脚本传参
- $0:文件名
- $n:依次是第n个参数
- $?:0表示上一条执行的语句没有错
- $#:传递到脚本中的参数个数
- $* 或 $@:获取传递到脚本中的所有参数
- 区别:xx
- $-:hB? set命令?
- $$: 当前进程号
- $!: ? 最后一个进程号