01. 使用Shell脚本打印,系统版本、内核版本平台、虚拟平台、静态主机名、eth0网卡IP地址、lo网卡IP地址、当前主机的外网IP地址curl icanhazip.com
[root@web01 /scripts]# cat var.sh
#!/bin/bash
Version=$(awk '{print $1,$4}' /etc/redhat-release)
Vm=$(hostnamectl | awk '/Virtua/{print $2}')
Kernel=$(hostnamectl | sed -nr '/Kernel/s#.*x (.*).e.*#\1#gp')
Static_Name=$(hostnamectl | awk '/Static/{print $3}')
Eth0=$(ifconfig eth0 | awk 'NR==2{print $2}')
Lo=$(ifconfig lo | awk 'NR==2{print $2}')
Wan=$(curl -s icanhazip.com)
echo "当前系统版本为:$Version"
echo "当前系统内核版本为:$Kernel"
echo "当前系统虚拟化平台为:$Vm"
echo "当前系统静态主机名为:$Static_Name"
echo "当前系统Eth0网卡IP地址为:$Eth0"
echo "当前系统Lo网卡IP地址为:$Lo"
echo "当前系统外网IP地址为:$Wan"
[root@web01 /scripts]# sh var.sh
当前系统版本为:CentOS 7.6.1810
当前系统内核版本为:3.10.0-957
当前系统虚拟化平台为:vmware
当前系统静态主机名为:web01
当前系统Eth0网卡IP地址为:10.0.0.7
当前系统Lo网卡IP地址为:127.0.0.1
当前系统外网IP地址为:120.242.172.89
2. 需求描述:变量string="Bigdata process is Hadoop, Hadoop is open source project",执行脚本后,打印输出string变量,并给出用户以下选项:
#需求
1)打印string长度
2)删除字符串中所有的Hadoop
3)替换第一个Hadoop为Linux
4)替换全部Hadoop为Linux
用户请输入数字1|2|3|4,可以执行对应项的功能。
[root@web01 /scripts]# cat string.sh
#!/bin/bash
String="Bigdata process is Hadoop, Hadoop is open source project"
echo $String
cat <<EOF
1)打印string长度
2)删除字符串中所有的Hadoop
3)替换第一个Hadoop为Linux
4)替换全部Hadoop为Linux
EOF
read -p "请根据上方的菜单的选项输出对应的功能,如{1|2|3|4}:" Num
if [ $Num -eq 1 ];then
echo "当前String变量的长度为:${#String}"
fi
if [ $Num -eq 2 ];then
echo "删除变量中的所有Hadoop字符串。"
echo ${String//Hadoop/}
fi
if [ $Num -eq 3 ];then
echo "替换变量中的第一个Hadoop为Linux。"
echo ${String/Hadoop/Linux}
fi
if [ $Num -eq 4 ];then
echo "替换变量中的所有的Hadoop为Linux。"
echo ${String//Hadoop/Linux}
fi
"
echo "当前系统内核版本为:$Kernel"
echo "当前系统虚拟化平台为:$Vm"
echo "当前系统静态主机名为:$Static_Name"
echo "当前系统Eth0网卡IP地址为:$Eth0"
echo "当前系统Lo网卡IP地址为:$Lo"
echo "当前系统外网IP地址为:$Wan"
[root@web01 /scripts]# sh var.sh
当前系统版本为:CentOS 7.6.1810
当前系统内核版本为:3.10.0-957
当前系统虚拟化平台为:vmware
当前系统静态主机名为:web01
当前系统Eth0网卡IP地址为:10.0.0.7
当前系统Lo网卡IP地址为:127.0.0.1
当前系统外网IP地址为:120.242.172.89