Bashで関数を書く方法
プログラミングするときは、文字通りプロシージャまたはルーチンを定義します。 、コンピュータに実行させたい。簡単な例えでは、コンピュータープログラミングとパンの焼き方を比較します。作業環境を設定するために材料を一度リストし、次にパンを一斤にするために必要な手順をリストします。プログラミングとベイク処理の両方で、いくつかのステップを異なる間隔で繰り返す必要があります。たとえば、パンを焼く場合、これはサワードウ文化を養うプロセスである可能性があります。
STIR=100
SNOOZE=86400
function feed_culture {
remove_from(pantry)
add(flour, water)
stir($STIR)
sleep($SNOOZE)
}
そして後で、生地をこねて校正します:
KNEAD=600
SNOOZE=7200
function process_dough {
remove_from(proofing_drawer)
knead($KNEAD)
return_to_drawer($SNOOZE)
}
プログラミングでは、これらのサブルーチンは関数として表現できます。 。関数は、コードの冗長性を減らし、必要なメンテナンスの量を減らすのに役立つため、プログラマーにとって重要です。たとえば、プログラムでパンを焼くという架空のシナリオでは、生地のプルーフの時間を変更する必要がある場合、以前に関数を使用したことがある限り、秒の値を1回変更するだけで済みます。変数を使用する( SNOOZE と呼ばれる) サンプルコード内)または生地を処理するサブルーチン内で直接。これにより、多くの時間を節約できます。これは、生地の盛り上がりについて考えられるすべての言及についてコードベースを探す必要がなく、生地が見つからないことを心配する必要がないためです。多くのバグは、変更されなかった値の欠落、または sed
の実行が不十分なために発生しました。 手動で狩りをすることなく、最後の試合をすべてキャッチすることを期待してコマンドを実行します。
Bashでは、関数の定義は、作成しているスクリプトファイルまたは別のファイルに設定するのと同じくらい簡単です。関数を専用ファイルに保存すると、source
できます include
と同じようにスクリプトに追加します CまたはC++またはimport
のライブラリ Pythonへのモジュール。 Bash関数を作成するには、キーワードfunction
を使用します :
function foo {
# code here
}
これは、関数が引数でどのように機能するかの簡単な(そして、これをもっと簡単にすることができるので、いくらか工夫された)例です:
#!/usr/bin/env bash
ARG=$1
function mimic {
if [[ -z $ARG ]]; then
ARG='world'
fi
echo "hello $ARG"
}
mimic $ARG
結果は次のとおりです。
$ ./mimic
hello world
$ ./mimic everybody
hello everybody
関数を実行するスクリプトの最後の行に注意してください。これは、初心者のスクリプターやプログラマーにとってよくある混乱のポイントです。関数は自動的に実行されません。それらは潜在的として存在します 呼び出されるまでルーチン。
関数を呼び出す行がないと、関数は定義されるだけで実行されません。
Bashを初めて使用する場合は、最後の行を含めてサンプルスクリプトを一度実行し、最後の行をコメントアウトしてもう一度実行してみてください。
関数は、単純なスクリプトの場合でも、重要なプログラミングの概念です。関数を使いこなせるほど、単なる宣言型のコマンド行よりも動的なものを必要とする複雑な問題に直面したときに、より良い結果が得られます。汎用関数を別々のファイルに保存すると、プロジェクト全体で再利用できるように、一般的に使用するルーチンを構築するのに役立つため、作業を節約することもできます。スクリプトの習慣を見て、関数がどこに適合するかを確認してください。
-
カスタムシェル関数とライブラリを作成して使用する方法
Linuxでは、シェルスクリプトは、特定のシステム管理タスクの実行や自動化、簡単なコマンドラインツールの作成など、さまざまな方法で役立ちます。 このガイドでは、新しいLinuxユーザーに、カスタムシェルスクリプトを確実に保存する場所、カスタムシェル関数とライブラリの記述方法、他のスクリプトでライブラリの関数を使用する方法を示します。 シェルスクリプトを保存する場所 フルパス/絶対パスを入力せずにスクリプトを実行するには、スクリプトを $ PATHのディレクトリの1つに保存する必要があります。 環境変数。 $ PATHを確認するには 、以下のコマンドを発行します: $ echo $PAT
-
6 つの実用的な例を含む Bash シェル関数のチュートリアル
Bash シェル関数は、グループに単一の名前を使用して、後で実行するために複数の UNIX / Linux コマンドをグループ化する方法です。 . Bash シェル関数は、通常の Unix コマンドと同じように実行できます。シェル関数は、それらを解釈するための新しいプロセスを作成することなく、現在のシェル コンテキストで実行されます。bash エイリアスと関数の両方を使用すると、より長い、またはより複雑なコマンドのショートカットを定義できます。ただし、エイリアスは、このチュートリアルで説明されているように、これらの関数が許可する制御フロー、引数、およびその他の巧妙なものを許可しません。 この