同じ処理を何度も書くのは非効率です。関数を使えばコードを再利用でき、スクリプトがすっきり読みやすくなります。
関数の基本構文
#!/bin/bash
greet() {
echo "こんにちは、$1 さん!"
}
greet "Taro"
greet "Hanako"$1 は関数に渡した第1引数です。$2 $3 と続きます。
文字列を返す(echoパターン)
get_greeting() {
local name="$1"
echo "こんにちは、${name}さん"
}
message=$(get_greeting "Taro")
echo "$message"localでスコープを制限する
name="global"
show_name() {
local name="local"
echo "関数内: $name"
}
show_name
echo "関数外: $name" # global が表示されるlocal を使わないと変数がグローバルになります。関数内の変数は必ず local をつける習慣をつけましょう。
実用例:ログ出力関数
log() {
local level="$1"
local message="$2"
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$level] $message"
}
log "INFO" "スクリプト開始"
log "ERROR" "接続に失敗しました"まとめ
- 関数は
関数名() { 処理 }で定義する - 引数は
$1$2で受け取る - 文字列を「返す」にはechoを使い
$(関数名)でキャプチャする - 関数内の変数は
localでスコープを制限する



コメント