shell变量
shell 变量是用一个固定的字符串去表示不固定的内容,便于修改。
变量的类型
一.自定义变量
定义变量:变量名=变量值,变量名必须以字母或下划线开头,区分大小写- 1.显示赋值
变量名=变量值
示例:
ip1=192.168.1.251
school=”BeiJing 1000phone”
today2=$(date +%F) - 2.read 从键盘读入变量值
read 变量名
read -p “提示信息: ” 变量名
read -t 5 -p “提示信息: ” 变量名 //-t 等待5秒,后超时
read -n 2 变量名 //-n 只记录几个字符 - 3.注意引号的使用
单引号,强引用,脱去所有字符本身的含义
双引号,弱引用,脱去空格的含义
反引号,表示先执行引号内的命令,等价于$( )
引用变量:
$变量名 或 ${变量名}
查看变量:echo $变量名; "set"可以查看所有变量(包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效- 1.显示赋值
- 二.环境变量
定义环境变量:
方法一 export back_dir2=/home/backup
方法二 export back_dir1 将自定义变量转换成环境变量
引用环境变量:$变量名 或 ${变量名}
查看环境变量: echo $变量名 或者env 例如env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前shell和子shell有效 !!!!!!!!!!!!!!!!!!!!!!! - 三.位置变量和预定义变量
命令 参数1 参数2 参数3 ….9以后特殊定义
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ...
预先定义过的变量
$0 脚本名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的PID
$! 上一个后台进程的PID
$? 上一个命令的返回值 0表示成功
变量的运算
- 一.整数运算
- 1.方法一:expr
expr 1 + 2
expr $num1 + $num2 + - \* / %
+加
-减
\*乘 *是任意字符,使用\ 转义一下。
/除
%取余 - 2.方法二:$(( ))
echo $(($num1+$num2)) + - * / %
echo $((num1+num2))
echo $((5-3*2))
echo $(((5-3)*2))
echo $((2**3)) //(幂)2的3次方
sum=$((1+2)); echo $sum - 3.方法三:$[ ]
echo $[5+2] + - * / %
echo $[5**2] - 4.方法四:let
let sum=2+3; echo $sum
let i++; echo $i
- 1.方法一:expr
- 二.小数运算
echo "2*4" |bc
echo "2^4" |bc
echo "scale=2;6/4" |bc
awk 'BEGIN{print 1/2}'
echo "print 5.0/2" |python
i++ 和++i 的区别
i++先赋值再自增
++i先自增再赋值