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

简介:

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

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

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

示例

[root@smokeping etc]# ls -d /etc
/etc
[root@smokeping etc]# echo $?
0  
[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}  
    do
    {
    ping -c2 $i &> /dev/null
    if [ $? -eq 0 ];then
                echo $i>>huo.txt
    else
                echo $i>>si.txt
    fi
    }
    done

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

目录
相关文章
|
1月前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
39 4
|
7月前
|
Java Python
循环程序举例
循环程序举例
55 1
|
5月前
|
语音技术 Python
语音识别,range语句,range语句=生成数字序列,for循环临时变量作用域,for循环临时变量作用域,for循环的变量作用域只能在for内部用,for循环的嵌套使用,for循环打印九九乘法表
语音识别,range语句,range语句=生成数字序列,for循环临时变量作用域,for循环临时变量作用域,for循环的变量作用域只能在for内部用,for循环的嵌套使用,for循环打印九九乘法表
|
7月前
|
C#
C#基础语法(判断和循环)
C#基础语法(判断和循环)
64 1
循环遍历的基本用法
循环遍历的基本用法
90 0
|
小程序
循环结构-用while循环求编写求s=1+(1+2)+(1+2+3)+....+(1+2+3+....+n) 的值
循环结构-用while循环求编写求s=1+(1+2)+(1+2+3)+....+(1+2+3+....+n) 的值
523 0
|
Shell
shell:脚本数组list定义、长度获取、循环打印、数组切片、字符串转换
shell:脚本数组list定义、长度获取、循环打印、数组切片、字符串转换
2307 0
|
Shell
应该是你见过最详细的shell编程循环语句解析了(for循环、while循环、until循环)(一)
应该是你见过最详细的shell编程循环语句解析了(for循环、while循环、until循环)(一)
285 0
应该是你见过最详细的shell编程循环语句解析了(for循环、while循环、until循环)(一)
|
Shell
应该是你见过最详细的shell编程循环语句解析了(for循环、while循环、until循环)(二)
应该是你见过最详细的shell编程循环语句解析了(for循环、while循环、until循环)(二)
203 0
应该是你见过最详细的shell编程循环语句解析了(for循环、while循环、until循环)(二)