自定义变量
定义变量:变量名=变量名
引用变量:$变量名 或 ${变量名}
查看变量:echo $ 变量名、set
取消变量:unset
变量名作用范围:仅在当前Shell中有效
环境变量
定义环境变量
方法一:export back_dir2=/home/backup
方法二:export back_dirl 将自定义变化量转换成环境变量
引用环境变量:$变量名 或 ${变量名}
查看环境变量:echo $变量名 env 列如 env | grep back_dir2set
取消环境变量:unset 变量名
变量作用范围:在当前shell和子shell有效
位置变量
主要是在脚本执行后加参数
echo 我是谁:$0
echo 我的第一个位置是:$1
echo 我的第二个位置是:$2
echo 我的年龄是:$1
echo 我的名字是:$2
echo 我的学校是:$3
预定义变量
$$:当前shell的进程号
$0:当前执行的shell脚本名
$#:传递到shell脚本的位置参数个数
$*:传递到shell脚本的所有位置参数(一个字符串)
$@:传递到shell脚本的所有位置参数(多个字符串)
$?:上一条命令的返回码
$!:显示运行在后台的最后一个进程的PID值
$_:上一条命令或脚本的最后一个参数
变量的赋值方式
显式赋值
变量名=变量值:ip1 = 192.168.31.27
read从键盘上读入变量值
read 变量名
read -p “提示信息:” 变量名
-n 读取字符数 -p 提示符 -u
文件描述符-s 不显示输出内容
stty -echo (stty echo) 命令行隐藏输入
变量的运算
整数运算
方法一:expr
方法二:$(())
方法三:#[ ]
方法四:let
小数运算
echo “1+1” |bc
变量截取
匹配截取
url=www.####.com
echo ${#url} #获取变量值的长度
echo ${url} #标准查看
echo ${url#*} #从前往后,最短匹配
echo ${url##*} #从前往后,最长匹配
echo ${url%.*} #从后往前,最短匹配
echo ${url%%.*} #从后往前,最短匹配
索引及切片
echo ${url:0:5}
echo ${url:5:5}
echo ${url:5}
"内容“的替换
echo ${url/n/N}
变量的替代
${变量名-新的变量值}
unset varl
echo ${varl1-666}