シェルスクリプト

シェルスクリプトの関数の定義と使い方【再利用可能なコードを書く】

シェルスクリプト
記事内に広告が含まれています。

同じ処理を何度も書くのは非効率です。関数を使えばコードを再利用でき、スクリプトがすっきり読みやすくなります。

関数の基本構文

#!/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 でスコープを制限する

コメント

タイトルとURLをコピーしました