shell 变量的3中传参方式
(1)直接传参
sh test.sh a b
(2) 赋值传参
#!/bin/bash
name=$1
age=$2
(3)read 读入
#!/bin/bash
read -p "请您输入您的姓名: " name
read -p "请您输入您的年龄: " age
echo 姓名: $name
echo 年龄: $age
练习题:使用三种传参方式:
修改主机名称和IP地址
修改完IP 输出修改的结果到屏幕
在重启网络
第一种,直接传参 修改 主机 和 IP 地址
sh testvar.sh baimei 172.16.1.4
testvar.sh如下:
#!/bin/bash/
# change hostname
hostnamectl set-hostname $1
#dir=/root/ifcfg-eth
dir=/etc/sysconfig/network-scripts/ifcfg-eth1
echo "修改文件为:" $dir
sed -i "/IPADDR/c IPADDR=$2" $dir
echo "修改内容为:" ` sed -n "/IPADDR/p" $dir`
echo "开始重启网卡:"
ifdown eth1
sleep 10s
ifup eth1
修改后, bash
第2种: 赋值传参
[root@lb02 ~]#cat 2testvar.sh
#!/bin/bash/
# change hostname
hostname=$1
ip=$2
hostnamectl set-hostname $hostname
#dir=/root/ifcfg-eth
dir=/etc/sysconfig/network-scripts/ifcfg-eth1
echo "修改文件为:" $dir
sed -i "/IPADDR/c IPADDR=$ip" $dir
echo "修改内容为:" ` sed -n "/IPADDR/p" $dir`
echo "开始重启网卡:"
ifdown eth1
sleep 3s
ifup eth1
第3种: read 读入
#!/bin/bash/
# change hostname
read -p "请输入主机名称:" hostname
echo $hostname
read -p "请输入内网Ip:" ip
echo $ip
hostnamectl set-hostname $hostname
#dir=/root/ifcfg-eth
dir=/etc/sysconfig/network-scripts/ifcfg-eth1
echo "修改文件为:" $dir
sed -i "/IPADDR/c IPADDR=$ip" $dir
echo "修改内容为:" ` sed -n "/IPADDR/p" $dir`
echo "开始重启网卡:"
ifdown eth1
sleep 3s
ifup eth1
[ $? -eq 0 ] && echo "重启网卡成功" || echo "重启网卡失败...."
欢迎来撩 :shell 编程从0到1