变量注意事项
- 定义或引用变量时注意事项;
“” 弱引用
‘’ 强引用
[root@elephant shell]# school=oldboy
[root@elephant shell]# echo $school
oldboy
[root@elephant shell]# echo "${school} is good"
oldboy is good
[root@elephant shell]# echo '${school} is good'
${school} is good
自定义变量
1. 脚本中定义变量(显示赋值)
变量名=变量值
today1=`date +%F`
time=`date +%T`
time=$(date +%F)
示例1:
vim ping01.sh
#!/bin/bash
ip=10.0.0.10
ping -c1 $ip &>/dev/null && echo “$ip is up” || echo “$ip is down”
2. read从键盘读入变量值
read -p “提示信息: " 变量名
read -t 5 -p “提示信息: ” 变量名
-t 倒计时时间
- 只需要输入变量得值
- 一般时候需要给用户提示
- 有的时候是需要系统输入,我们就不需要提示
- 可以给变量值做出修改,根据不同场景去使用
示例1
#!/bin/bash
read -P “请输入ip地址测试网络: ” ip
ping -c1 $ip &>/dev/null
if [ $? -eq 0 ]
then
echo “$ip is up”
else
echo “$ip is down”
fi
示例2
#!/bin/bash
#默认空格进行区分 人性化给提示输入格式
read -p “请输入姓名,性别,年龄[ zhangsan m 20 ]: ” name sex age
echo “您输入得姓名是: $name, 性别: $sex 年龄: $age”
示例3
back_dir1=/var/backup
read -p "请输入你的备份目录: " back_dir2
echo $back_dir1
echo $back_dir2
3.if判断
- 第一种:判断网络通不通
#!/bin/bash
ip=10.0.0.10
if ping -c1 $ip &>/dev/null
then
echo “$ip is up”
else
echo “$ip is down”
fi
- 第二种: 利用上一条命令得返回值进行判断
#!/bin/bash
ip=10.0.0.10
ping -c1 $ip &>/dev/null
if [ $? -eq 0 ]
then
echo “$ip is up”
else
echo “$ip is down”
fi
4. 位置变量
- 利用传参得方式定义变量
#!/bin/bash
#$1为系统默认定义传参变量
#$1 $2 $3 为位置变量
ping -c1 $1 &>/dev/null
if [ $? -eq 0 ]
then
echo “$1 is up”
else
echo “$1 is down”
fi
通过位置进行判断参数去执行
./ping.sh 10.0.0.10
10.0.0.10 is up