学习Python控制流和循环来编写和调试Shell脚本 - 第2部分

在本文中,我们将回顾Python中的控制流,循环/迭代和模块的概念,还将展示如何利用OOP方法和

在此以前的文章的Python系列我们共同简要介绍Python的 ,它的命令行外壳和空闲。 我们还演示了如何执行算术计算,如何在变量中存储值,以及如何将这些值打印回屏幕。 最后,通过一个实际的例子,我们在面向对象编程的上下文中解释了方法和属性的概念。

在Python编程中编写Linux Shell脚本

在Python编程中编写Linux Shell脚本

在本指南中,我们将讨论控制流(根据用户输入的信息,计算结果或变量的当前值来选择不同的动作过程)和循环(自动重复任务),然后应用我们到目前为止已经学会编写一个简单的shell脚本,它将显示操作系统类型,主机名,内核版本,版本和机器硬件名称。

这个例子虽然基本,但将帮助我们说明如何利用Python OOP的能力,比使用普通的bash工具更容易编写shell脚本。

换句话说,我们想要去

# uname -snrvm
检查Linux的主机名

检查Linux的主机名

使用Python脚本检查Linux主机名

使用Python脚本检查Linux主机名

要么

检查Linux系统信息的脚本

检查Linux系统信息的脚本

看起来很漂亮,不是吗? 让我们卷起袖子,让它发生。

在Python中控制流

正如我们前面所说,控制流允许我们根据给定的条件选择不同的结果。 它在Python中最简单的实现是一个if / else子句。

基本语法是:

if condition:
# action 1
else:
# action 2
    当条件计算为true,代码块下面将被执行(表示为# action 1 ,否则,下否则代码会被执行。

    条件可以是可以求值为true或false的任何语句。

    例如:
    1. 1 <3#真

    2. 的firstName ==“加布里埃尔”#真我,假的,任何人未命名加布里埃尔

    1. 在第一个示例中,我们比较两个值以确定一个是否大于另一个。
    2. 在第二个例子中,我们比较的firstName(变量),以确定是否在当前执行点,其值是相同的“ 加布里埃尔
    3. 条件和else语句后面必须跟一个冒号(:)
    4. 缩进在Python中很重要。 具有相同缩进的行被认为在同一代码块中。

    请注意,if / else语句只是Python中许多控制流工具之一。 我们在这里审查它,因为我们将在后面的脚本中使用它。 您可以了解更多有关的工具,在其余的官方文档

    Python中的循环

    简单来说,循环是一个指令或语句序列,只要条件为真,就按顺序执行,或者在列表中每个项目执行一次。

    Python中最简单的循环由for循环表示,该循环遍历给定列表或字符串中以第一个项开头并以最后一个结尾的项。

    基本语法:

    for x in example:
    # do this
    

    这里的例子可以是列表或字符串。 如果是前者,命名为x变量代表列表中的每个项目; 如果是后者,x表示串中的每个字符:

    >>> rockBands = []
    >>> rockBands.append("Roxette")
    >>> rockBands.append("Guns N' Roses")
    >>> rockBands.append("U2")
    >>> for x in rockBands:
    print(x)
    or
    >>> firstName = "Gabriel"
    >>> for x in firstName:
    print(x)
    

    上述示例的输出如下图所示:

    在Python中学习循环

    在Python中学习循环

    Python模块

    由于显而易见的原因,必须有一种方法可以在一个文件中保存一系列Python指令和语句,当需要时可以调用它们。

    这正是一个模块。 特别是,os模块提供了对底层操作系统的接口,使我们能够完成许多我们通常在命令行提示符下操作的。

    因此,它包含了几个方法和属性,可以调用,如我们在上一篇文章中解释。 但是,我们需要使用import关键字在我们的环境中导入(或包含)它:

    >>> import os
    

    让我们打印当前的工作目录:

    >>> os.getcwd()
    
    学习Python模块

    学习Python模块

    让我们把所有这些(以及前面的文章中讨论的概念)放在一起来编写所需的脚本。