Linux脚本练习之script017-接受一个主机的 IPv4 地址作为参数,测试是否可连通。如果能够 ping 通,则提示用户“该 IP 地址可访问”。
  TEZNKK3IfmPf 2023年11月13日 22 0

script017

题目

编写脚本 /root/bin/hostping.sh,接受一个主机的 IPv4 地址作为参数,测试是否可连通。如果能够 ping 通,则提示用户“该 IP 地址可访问”;如果不能 ping 通,则提示用户“该 IP 地址不可访问”。

分析

本题考查的知识点:

  • if...else 条件判断语句
  • 数字比较大小
  • ping 命令
  • $?

思路:

  • ping 命令可以用来测试 IP 地址是否是可连通。这里判断 IP 地址有效的原理是对执行了 ping 命令后的退出码进行判断,如果为 0 表示正确执行,如果不为 0 表示错误执行。

Linux脚本练习之script017-接受一个主机的 IPv4 地址作为参数,测试是否可连通。如果能够 ping 通,则提示用户“该 IP 地址可访问”。

注:关于 $? 表示最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值不为 0,则证明上一个命令执行不正确了。所以可以用来判断 IP 地址是否可以连通。

脚本

#!/bin/bash

####################################
#
# 功能:接受一个主机的 IPv4 地址作为参数,测试是否可连通。如果能够 ping 通,则提示用户“该 IP 地址可访问”;如果不能 ping 通,则提示用户“该 IP 地址不可访问”。
#
# 使用:传递 IPv4 地址作为第一个参数
#
####################################


# 参数校验
if [ "$#" -ne 1 ]; then
    echo "请输入一个参数!"
fi
# 第一个输入的参数是 IPv4 地址
ipv4="$1"
# 注意,这里并没有校验IP地址的合法性
# 测试 IP 是否可连通的原理:如果 IP 有效,则执行 `ping` 命令后的退出码为 0;如果无效,则退出码非 0
# 为了不打印 ping 的执行过程,可以将输出重定向到 /dev/null 中
ping -c 4 "$ipv4" > /dev/null
# 通过 $? 可以得到上一条命令的执行退出码
exit_code=$?
# 判断退出码是否为 0
if [ "$exit_code" -eq 0 ]; then
    echo "该 IP 地址可访问!"
else
    echo "该 IP 地址不可访问!"
fi

测试

执行 ./script017.sh IP地址 调用脚本,其中 IP地址 是待测试的真实 IP。

Linux脚本练习之script017-接受一个主机的 IPv4 地址作为参数,测试是否可连通。如果能够 ping 通,则提示用户“该 IP 地址可访问”。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   42   0   0 linux服务器
  TEZNKK3IfmPf   2024年05月31日   27   0   0 linux服务器centos
  TEZNKK3IfmPf   2024年05月31日   26   0   0 linuxbind
  TEZNKK3IfmPf   2024年05月31日   36   0   0 linuxshell
TEZNKK3IfmPf