Bash:
コードを関数に整理する
方法:
Bashでシンプルな関数を作成します:
greet() {
echo "Hello, $1!"
}
パラメーターを指定して関数を呼び出すには:
greet "World" # 出力:Hello, World!
関数はreturn
を使用して数値ステータスコードを返します(実際のデータ返却には使用しません):
add() {
return $(($1 + $2))
}
add 3 4
echo $? # 出力:7
$?
は最後のコマンドの戻り値をキャプチャすることに注意してください。これはadd
の数値結果です。
詳細解説
Bashにおいて、関数は初期バージョンからコードを区画化する手段としてありました。歴史的に言えば、関数を使用することは、コード品質を向上させるために1960年代に導入された構造化プログラミングの原則に沿っています。
関数の代替手段には、スクリプトファイルをソーシングしたりエイリアスを使用することがありますが、これらは同じレベルのモジュール性や再利用性を提供しません。
Bashにおける注目すべき実装の詳細は、関数は第一級の市民であるということです;他の言語のような特定の宣言キーワード「function」はありませんが、可読性のためにBashでは「function」がオプショナルです。関数のスコープも興味深いものがあります—変数はデフォルトでグローバルであるため、適切に管理されない場合は予期せぬ動作につながることがあります。
参照
- Bashマニュアルのシェル関数: https://www.gnu.org/software/bash/manual/html_node/Shell-Functions.html
- Advanced Bash-Scripting Guide: https://tldp.org/LDP/abs/html/functions.html
- 「Pro Bash Programming: Scripting the GNU/Linux Shell」で、関数スクリプティングのコンセプトと実践に関する深い知識を得る。