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命令?
  • $$: 当前进程号
  • $!: ? 最后一个进程号