Linux Shell编程及自动化运维实现 第1章 变量
一、shell的概念
Shell是用户与Linux内核进行交互操作的一种接口,目前最流行的shell称为bash Shell
Shell是解释执行的脚本语言,所谓脚本语言就是不用编译就可以直接执行的语言。在shell中可以调用Linux系统命令。
Linux中的shell有:
/bin/bash
sh shell
Bourne Shell
C Shell
Korn Shell
shell多种执行方式:
Bash 1.sh
Sh 2.sh
. 4.sh
Source 3.sh
二、变量
什么是变量?
用一个固定的字符串去表示不固定的内容,便于修改
- 变量的类型
- 自定义变量
自定义变量(示例:ping01.sh引入变量)
定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 ip1=192.168.2.115
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名; "set"可以查看所有变量(包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效
- 显示赋值
变量名=变量值
示例:
ip1=192.168.1.251
school="BeiJing 1000phone"
today1=`date +%F`
today2=$(date +%F
b)read 从键盘读入变量值
read 变量名
read -p "提示信息: " 变量名
read -t 5 -p "提示信息: " 变量名 //-t 等待5秒,后超时
read -n 2 变量名 //-n 只记录几个字符
read -p "请输入您测试的IP地址:" ip
ping -c1 $ip &>/dev/null && echo " $ip up" || echo "$ip
down"
~
- 环境变量
定义环境变量: 方法一 export back_dir2=/home/backup
方法二 export back_dir1 将自定义变量转换成环境变量
引用环境变量: $变量名 或 ${变量名}
查看环境变量: echo $变量名 env 例如env |grep back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前shell和子shell有效 !!!!!!!!!!!!!!!!!!!!!!!
- 环境变量
- 整数运算
+ 加
- 减
\* 乘
/ 除
% 取余
方法一:expr
expr 1 + 2
expr $num1 + $num2 + - \* / %
方法二:$(())
echo $(($num1+$num2)) + - * / %
echo $((num1+num2))
echo $((5-3*2))
echo $(((5-3)*2))
echo $((2**3)) //(蜜)2的3次方
sum=$((1+2)); echo $sum
方法三:$[]
echo $[5+2] + - * / %
echo $[5**2]
方法四:let
let sum=2+3; echo $sum
let i++; echo $i
- 小数运算
ho "2*4" |bc
echo "2^4" |bc
echo "scale=2;6/4" |bc
awk 'BEGIN{print 1/2}'
echo "print 5.0/2" |python
解释:
bc:交互运算器
scale=2 保留小数点后面两位
awk和python做了解