Bashの関数 - 定義、引数、戻り値、スコープ
引数、戻り値、ローカル変数、エラーハンドリング、モジュール式シェルスクリプトのための実践パターンを使った再利用可能なbash関数の書き方を学びます。
Control Flow
詳細な説明
Bashの関数
関数は再利用可能なコードブロックをカプセル化します。引数を受け取り、値を返し、適切なスコーピングのためにローカル変数をサポートします。
関数定義
greet() {
echo "Hello, $1!"
}
greet "Alice" # Hello, Alice!
戻り値
is_installed() {
command -v "$1" > /dev/null 2>&1
}
if is_installed "docker"; then
echo "Dockerが利用可能です"
fi
get_timestamp() {
date +%s
}
TIMESTAMP=$(get_timestamp)
ローカル変数
process_file() {
local filename="$1"
local line_count=0
while IFS= read -r line; do
line_count=$((line_count + 1))
done < "$filename"
echo "$line_count"
}
実践パターン
log() {
local level="$1"
shift
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$level] $*" | tee -a app.log
}
cleanup() {
echo "一時ファイルをクリーンアップ中..."
rm -rf "$TEMP_DIR"
}
trap cleanup EXIT
ユースケース
関数は整理されたbashスクリプトの構成要素です。ログユーティリティ、入力検証、エラーハンドリングラッパー、デプロイステップ、設定の読み込み、繰り返し操作に使用されます。関数を使用するとスクリプトが読みやすく、テストしやすく、保守しやすくなります。