bash

特殊符号:

  $$ 进程号

  $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。

  但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

${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 的值。

      echo  -e 转义;  -E 禁止转义

    `` 和 $() 等价;

      表达式和运算符之间要有空格, eg.  '2+2' 是错的, '2 + 2'则是对的, 乘法要用 '*'

      条件表达式要放在[]中间,并且要有空格,eg. [$a==$b] 是错的, [ $a == $b ] 则是对的   

      = 判断两个字符串相等; == 判断两个数字相等  -o  或;  -a 与; -z 字符串长度是否为0; -n 字符串长度是否不为0

     

单引号

  1. str='this is a string'

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

双引号

  1. your_name='qinjx'
  2. str="Hello, I know your are "$your_name"! "

双引号的优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符
原文地址:https://www.cnblogs.com/reach/p/5197358.html