shell脚本的变量

①、算数运算:+、-、*、/、%、**(乘方)

        方法:①、let name=算数运算

                   ②、var=$[算数运算]

                   ③、var=$((算数运算))

                   ④、exper $name  运算符 $name (*需要转义)

                   ⑤、declare -i name (声明为int型)

                   ⑥、传给bc

②、 逻辑运算:&、|、!、^(异或)

        异或技巧:交换x与y的值:x=$[x^y]  y=$[x^y]  x=$[x^y]

③、短路    分为:短路与      短路或

④、随机变量:$RANDOM (0—32767)       例如随机颜色:echo -e " 33[1;$[RANDOM%7+31]LDY 33[0m"

⑤、增强变量:(只能用let) +=、-+、*=、/=、++、--   (j=i++与j=++i)

⑥、环境变量(变量如同家族继承):export name=value

                                                        declare -x name=value

       查看环境变量:env  printenv  declare -x  export

⑦、只读变量:readonly name=value        declare -r name=value

       查看只读变量:readonly       declare -r

⑧、变量引用:$name     ${name}

⑨、位置变量(传递参数)

       $1,$2,......     对应第一个参数,第二个参数......   (注意$10与${10}区别)

  $0      显示命令本身,包括路径。与`basename $0`联用最好

  $*       所有参数,合为一个字符串

  $@       每个参数为独立字符

  $#      显示参数个数

       例如:给其他主机转发文件的脚本:#!/bin/bash

                            scp $*  ldy@10.0.0.100:/etc/data/script

$_      前一个命令的最后一个参数

$-      显示不同字母,每个字母代表一种功能

$?     专门查看上一个命令的真假状态。脚本就看最后一条命令。0成功,1-255失败。

exit n 干预$?成功的结果。如网页404表示没有此网页。403表示没有访问权限。

set    实现脚本安全    -u 若无变量,执行到没有的变量时则会报错。     <==> set -o nounset

                                  -e 若中间有错误命令,就会报错    <==> set -o errexit

                                  -x 跟踪执行过程

set -o   查看开关,-参数 打开      +参数 关闭

echo  ‘ ’    通通认为是字符

          “ ”    命令认为字符,变量为变量

          ` `    命令,变量都认识