ping通网络脚本

shell脚本学习——ping通网络脚本

案例1

[root@localhost shell_scripts]# cat ping.sh
#!/bin/bash
clear
echo "请输入要ping的IP地址:"
read IP
if ping -c1 $IP &>/dev/null ;then
        echo -e "\t\t\t\t---网络可以ping通$IP!---"
else
        echo -e "\t\t\t\t---网络不能ping通$IP!---"
fi

clear命令

用于清除屏幕。这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。

read命令

用于从标准输入读取数值。read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。

ping -c1

主要用来测试主机之间网络的连通性
c 指定发送报文的次数

$

将之前定义的变量取来用

&>/dev/null

&> 表示混合输出(标准输出+错误输出)
/dev/null 表示黑洞,垃圾箱(进去就没有了出不来了)
&>/dev/null 表示无论输出是否正确都扔到垃圾箱

链路两条不相关的命令,前面一条不管是否执行成功,后面一条都要执行。

||

前面一条命令执行失败,后面的命令才执行。

&&

前面命令运行成功后面命令才能执行。

echo

-n 不输出结尾的换行符(输出之后不换行)
-e 表示对于转义字符按相应的方式处理,如果不加-e那么对于转义字符会按普通字符处理。
-e “\a” 发出警告音
-e “\b” 删除前面的一个字符
-e “\c” 后面的字符将不会输出,同时,输出完成后也不会换行
-e “\f” 换行,光标扔停留在原来的坐标位置
-e “\n” 换行,光标移至行首
-e “\r” 光标移至行首,但不换行,输出回车符(但是你会发现\r前面的字符没有了)
-e “\t” 表示水平制表符
-e “\v” 表示垂直制表符
-E 禁止反斜杠转移,与-e参数功能相反

案例2

[root@localhost shell_scripts]# cat ping1.sh
#!/bin/bash
clear
echo "请输入要ping的IP地址:"
read IP
ping -c1 $IP &>/dev/null
if [ $? -eq 0 ] ;then
        echo -e "\t\t\t\t---网络可以ping通!---"
else
        echo -e "\t\t\t\t---网络不能ping通!---"
fi

* 匹配0或多个任意字符
? 匹配任意单个字符
[ a-z ] 匹配[ ]中的任意单个字符,或者一组单个字符
[! a-z ] 匹配除a-z的任意单个字符
{abc,bcd,cde}匹配abc,bcd,cde,或更多字符串
()在子shell中执行

[ $? -eq 0 ]

[ 左方括号也是一条命令(用来做条件测试)( ] 是左方括号的参数),其周边命令需要保持空格距离

[root@localhost shell_scripts]# type -a [
[ 是 shell 内嵌
[ 是 /usr/bin/[

$? 执行上一行指令的返回值(0表示没有错误,其他任何值表明有错误)

-eq 表示 等于
-ne 表示 不等于
-gt 表示 大于
-lt 表示 小于
-ge 表示 大于等于
-le 表示 小于等于

if [ command ];then
     符合该条件执行的语句
elif [ command ];then
     符合该条件执行的语句
else
     符合该条件执行的语句
fi

1.shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令。
2.当有多个嵌套时,只有第一个返回0退出状态的命令会导致符合该条件执行的语句部分被执行,如果所有的语句的执行状态都不为0,则执行else中语句。
3.shell中,then和fi是分开的语句。如果要在同一行里面输入,则需要用分号将他们隔开。
4.如果只单独使用>或者<号,系统会认为是输出或者输入重定向,虽然结果显示正确,但是其实是错误的,因此要对这些符号进行转意。

每篇文章都会不断迭代补充,敬请关注。

你可能感兴趣的:(Linux脚本学习,vim,linux)