zl程序教程

您现在的位置是:首页 >  前端

当前栏目

利用for循环完成你的第一个脚本

循环 利用 for 脚本 完成 第一个
2023-09-27 14:27:54 时间

脚本涉及内容:
ping -c# IP :向目标IP发送#个包,测试是否可达。

命令状态结果:
成功:0 失败:1-255

说明:当你执行完成一条命令时,使用echo $?即可测试命令是否成执行,如果返回0则表示你的命令执行成功了,如果返回值为1-255的数值,则表示你的命令执行失败。

示例

[root@smokeping etc]# ls -d /etc

[root@smokeping etc]# echo $?

[root@smokeping etc]# echo $?

127

bash的测试类型:

数值测试:

-gt:是否大于;

-ge:是否大于等于;

-eq:是否等于;

-ne:是否不等于;

-lt:是否小于;

-le:是否小于等于;

这里我们需要用到-eq来测试echo $?的值是否等于0,来检验我们的命令是否成完成了。

输出重定向:COMMAND NEW_POS, COMMAND NEW_POS

 :覆盖重定向,目标文件中的原有内容会被清除;

 : 追加重定向,新内容会追加至目标文件尾部;

说明:脚本中我们需要将存在IP输出到一个文本,将不存在的IP输出到另一个文本。

脚本测试:

[root@smokeping tmp]# bash -x ping.sh

说明:测试脚本执行,可详细的显示出脚本错误在哪一步,谁用谁知道。

以上内容结合if与for即可。 好了,上脚本。

#!/bin/bash

for i in 172.20.16.{1..255} 

 ping -c2 $i /dev/null

 if [ $? -eq 0 ];then

 echo $i huo.txt

 else

 echo $i si.txt

 done

在调试脚本过程中遇到了些问题,如if后边空格,以及条件测试中[ $? -eq 0 ]的空格等等,都是些小细节,希望大家多多注意。