Linux Shell 实践
shell脚本
注意事项:
- shell 开头必备
#!/bin/bash
- 命名-规则
- 变量名大写
- 局部变量小写
- 函数名小写
- 名字体现出实际作用
脚本1:获取简易IP地址
IP=`ifconfig enp0s3 |head -2|tail -1|awk '{print $2}'`
ZW=`ifconfig enp0s3 |head -2|tail -1|awk '{print $4}'`
GW=` route -n|tail -1|awk '{print $2}'`
HN=`hostname`
DNS=`cat /etc/resolv.conf |grep nameserver | awk '{print $2}'`
echo "IP=$IP"
echo "ZW=$ZW"
echo "GetWay=$ZW"
echo "hostname=$HN"
echo "DNS=$DNS"
输出:
补充:
awk命令
linux命令中文本处理三剑客之一
默认情况下,awk 会将如下变量分配给它在文本行中发现的数据字段:
- $0 代表整个文本行;
- $1 代表文本行中的第 1 个数据字段;
- $2 代表文本行中的第 2 个数据字段;
- $n 代表文本行中的第 n 个数据字段。
- 可在awk 命令后加参数-F '指定要分隔的字符'
脚本2:扫描同一网段的所有IP地址
#!/bin/bash
a=1
IP=`ifconfig enp0s3 |head -2|tail -1|awk '{print $2}'`
IP1=`ifconfig enp0s3 |head -2|tail -1|awk '{print $2}'|awk -F '.' '{print $1}'`
IP2=`ifconfig enp0s3 |head -2|tail -1|awk '{print $2}'|awk -F '.' '{print $2}'`
IP3=`ifconfig enp0s3 |head -2|tail -1|awk '{print $2}'|awk -F '.' '{print $3}'`
echo "$IP"
while [ $a -lt 255 ]
do
S=`ping -c 1 $IP1.$IP2.$IP3.$a |grep "received"|awk '{print $4}'`
if [ $S -eq 1 ]
then
echo "$IP1.$IP2.$IP3.$a"
fi
a=$(($a+1))
done
是则输出
脚本三:猜数字Game
num=$[RANDOM%100+1]
T=0
while [ $T -lt 11 ]
do
echo "input:"
read -a N
if [ $N -eq $num ]
then
echo "yes"
elif [ $N -ne $num ]
then
echo "no"
fi
T=$(($T+1))
done
实际效果: