51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

shell 变量的3中传参方式

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

赞(1)
未经允许不得转载:工具盒子 » shell 变量的3中传参方式