shell

shell编程

注意,尽量不要用空格做格式控制符

  1. 开头要用 指明解释器

    1
    #!/bin/bash
  2. 每句话不用封号结尾

  3. 变量的定义不用$符,但是引用要用$符,引用的时候要注意有无大括号
  4. 删除变量的时候不用$符
    5.
    1
    2
    3
    4
    5
    6
    7
    $0 当前脚本的文件名
    $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
    $# 传递给脚本或函数的参数个数。
    $* 传递给脚本或函数的所有参数。
    $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同
    $? 上个命令的退出状态,或函数的返回值。
    $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

#替换

  1. 转义替换(用-e 来禁止zhuanyi转义)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    下面的转义字符都可以用在 echo 中:
    \ 反斜杠
    a 警报,响铃
    b 退格(删除键)
    f 换页(FF),将当前位置移到下页开头
    n 换行
    r 回车
    t 水平制表符(tab键)
    v 垂直制表符
    1
    2
    3
    4
    5
    6
    ${var} 变量本来的值
    ${var:-word} 如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
    ${var:=word} 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
    ${var:?message} 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。
    若此替换出现在Shell脚本中,那么脚本将停止运行。
    ${var:+word} 如果变量 var 被定义,那么返回 word,但不改变 var 的值。