シェルスクリプトを記述および調整するためのPython制御フローとループを学ぶ-パート2


このPythonシリーズの前回の記事では、Python、そのコマンドラインシェル、およびIDLEの簡単な紹介を共有しました。また、算術計算を実行する方法、変数に値を格納する方法、およびそれらの値を画面に出力する方法についても説明しました。最後に、実際の例を通して、オブジェクト指向プログラミングのコンテキストでメソッドとプロパティの概念を説明しました。

このガイドでは、制御フロー(ユーザーが入力した情報、計算結果、または変数の現在の値に応じてさまざまなアクションコースを選択する)とループ(反復タスクを自動化する)について説明し、次に適用します。これまでに、オペレーティングシステムの種類、ホスト名、カーネルリリース、バージョン、およびマシンのハードウェア名を表示する簡単なシェルスクリプトを作成する方法を学びました。

この例は基本的ですが、Python OOPの機能を活用して、通常のbashツールを使用するよりも簡単にシェルスクリプトを作成する方法を説明するのに役立ちます。

言い換えれば、私たちはから行きたいです

# uname -snrvm

または

きれいに見えますね。袖をまくり上げて実現させましょう。

Pythonの制御フロー

前に述べたように、制御フローにより、特定の条件に応じてさまざまな結果を選択できます。 Pythonでの最も単純な実装は、if/else句です。

基本的な構文は次のとおりです。

if condition:
    # action 1
else:
    # action 2
  1. When condition evaluates to true, the code block below will be executed (represented by # action 1. Otherwise, the code under else will be run.
  2. A condition can be any statement that can evaluate to either true or false. For example:
1 < 3 # true
firstName == "Gabriel" # true for me, false for anyone not named Gabriel
  1. In the first example we compared two values to determine if one is greater than the other.
  2. In the second example we compared firstName (a variable) to determine if, at the current execution point, its value is identical to “Gabriel
  3. The condition and the else statement must be followed by a colon (:)
  4. Indentation is important in Python. Lines with identical indentation are considered to be in the same code block.

if/elseステートメントは、Pythonで使用できる多くの制御フローツールの1つにすぎないことに注意してください。後でスクリプトで使用するため、ここで確認しました。残りのツールについて詳しくは、公式ドキュメントをご覧ください。

Pythonのループ

簡単に言うと、ループとは、条件が真である限り順番に実行される、またはリスト内の項目ごとに1回実行される一連の命令またはステートメントです。

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の命令とステートメントのシーケンスを、必要なときに呼び出すことができるファイルに保存する方法が必要です。

それがまさにモジュールです。特に、osモジュールは、基盤となるオペレーティングシステムへのインターフェイスを提供し、コマンドラインプロンプトで通常実行する操作の多くを実行できるようにします。

そのため、前の記事で説明したように呼び出すことができるいくつかのメソッドとプロパティが組み込まれています。ただし、importキーワードを使用して、環境にインポート(またはインクルード)する必要があります。

>>> import os

現在の作業ディレクトリを印刷してみましょう。

>>> os.getcwd()

これらすべてを(前の記事で説明した概念とともに)まとめて、目的のスクリプトを作成しましょう。