Shell变量:就是用一个特定的字符串去表示不固定的内容。定义变量的语法格式: 变更名=变更值; 在Shell中,第一次使用某个变量时,实际上就是定义了这个变量。如果没有给出变量值,则变量会被赋值为一个空字符串。 Shell变量的类型: Shelll变量分为四类:分别是自定义变量、环境变量、位置变量和预定义变量。 自定义变量:根据需求临时定义的变量。自定义变量可以理解为局部变量或普通变量,只能在Shell函数或脚本中使用。自定义变量的说明如下: 定义自定义变量: 变量名=变量值 使用自定义变量:$变量名 查看自定义变量:echo $变量名 取消自定义变量:unset 变量名 举例:自定义变更在脚本中的使用(一个ping 通主机的脚本) # cat ping01.sh #!/bin/bash ip=192.168.1.1 #定义一个自定义变更ip ping -c1 $ip &>/dev/null # 将ping 的结果放在/dev/null (称为垃圾箱) 环境变量:也称为全局变量,可以创建它位的shell及其派生出来的任意子进程shell中使用。环境变更说明如下: 定义环境变量:使用export命令声明即可。例如,export back_dir 使用环境变量:$变量名 或${变量名} 查看环境变量:echo $变量名 或 env \grep back_dir 取消环境变量:unset 变量名 举例:环境变更在脚本中的使用 # cat ping02.sh #!/bin/bash ip=192.168.1.1 #定义一个自定义变更ip ping -c1 $ip &>/dev/null # 将ping 的结果放在/dev/null (称为垃圾箱) if [$? -eq 0 ] ;then # $?的意思是上一条命令的返回值,如果返回值为0,表示主机正常;否则表示宕机 echo "$ip is up!" else ech0 "$ip is down!" fi 位置变更:位置变量用于在命令行、函数或脚本中传递参数,其变量名不用自己定义,其作用也是固定的。在执行脚本时,通过在脚本后面给出具体的参数(多个参数之间使用空格隔开)对相应的位置变量进行赋值。位置变更说明如下: $0:代表命令本身: $1-$9:代表接收的第1-9个参数; $10以上:需要使用{} 括起来,比如${10}:代表接收的第10个参数。 预定义变量:预定义变量在shell中可以直接使用,位置变更也是预定义变量的一种。预定义变量说明如下: $0:脚本名 $*:所有的参数 $@:所有的参数 $#:参数的个数 $$:当前进程的PID $!:上一个后台进程的PID $?:上一个命令的返回值,返回值为0,表示成功。 举例:预定义变更$?的使用 # pwd /home/root # echo $? 0 说明:执行pwd命令,然后使用echo $? 查看执行命令的状态返回值,返回值为0,表示上一个命令执行成功。 |
|
来自: tycoondeng > 《LinuxShell》