Unix / Linux - シェル関数
こんにちは、将来のプログラマーさんたち!シェル関数の世界への旅にようこそ。あなたの近所の親切なコンピュータ教師として、この興味深いトピックを案内することを楽しみにしています。プログラミングが初めてであっても心配しないでください。基礎から始めて、段階的に進めていきます。それでは、始めましょう!
シェル関数とは?
関数を作成する前に、まずそれが何であるかを理解しましょう。関数は、あなたのスクリプトの中の小さな助け舟です。メインプログラムの中の特定のタスクをこなすミニプログラムのようなものです。あなたがコーヒー作りが得意な友達がいるように、特定の仕事に精通した関数を作成することができます。
関数の作成
関数を作成することは、コンピュータに新しい技を教えることと同じです。以下は基本的な構造です:
function_name() {
commands
}
簡単な関数を作ってみましょう。挨拶する関数です:
say_hello() {
echo "Hello, wonderful world!"
}
この関数を使うには、名前で呼び出します:
say_hello
実行すると以下のように表示されます:
Hello, wonderful world!
すごくないですか?私たちはコンピュータに「こんにちは」と言う方法を教えました!
関数にパラメータを渡す
さあ、関数を少し賢くしましょう。あなたがコーヒー作りの友達に好みのコーヒーを伝えるように、関数に情報を渡すことができます。
以下のように say_hello
関数を変更して、特定の人に挨拶するようにします:
say_hello() {
echo "Hello, $1! How are you today?"
}
この関数では、$1
は渡された最初のパラメータを表します。試してみましょう:
say_hello Alice
出力:
Hello, Alice! How are you today?
複数のパラメータを渡すこともできます:
greet() {
echo "Hello, $1! The weather is $2 today."
}
greet Alice sunny
出力:
Hello, Alice! The weather is sunny today.
関数からの値の返却
シェルスクリプティングでは、関数は伝統的な意味で値を返却しません。代わりに、結果をエコーするか、グローバル変数を設定します。両方の方法を見てみましょう:
エコーを使う場合:
get_square() {
echo $(($1 * $1))
}
result=$(get_square 5)
echo "The square of 5 is $result"
出力:
The square of 5 is 25
グローバル変数を使う場合:
get_square() {
square=$(($1 * $1))
}
get_square 6
echo "The square of 6 is $square"
出力:
The square of 6 is 36
継ぎ込まれた関数
あなたが物語の中に物語を持つように、関数の中に関数を持つこともできます。これをネストと呼びます。以下に例を示します:
outer_function() {
echo "This is the outer function"
inner_function() {
echo "This is the inner function"
}
inner_function
}
outer_function
出力:
This is the outer function
This is the inner function
プロンプトからの関数呼び出し
あなたはシェル関数を定義し、直接コマンドプロンプトから呼び出すこともできます。これは、カスタムコマンドを作成するのに特に便利です。以下の手順で行います:
- ターミナルを開く
- 関数を定義する:
greet() { echo "Hello, $1!"; }
- それを使う:
greet World
出力:
Hello, World!
これらの関数は、現在のターミナルセッションだけに限られます。永久的に使いたい場合は、シェル設定ファイル(.bashrc
や .zshrc
など)に追加してください。
一般的なシェル関数メソッド
以下は、シェル関数で使用される一般的なメソッドの表です:
メソッド | 説明 | 例 |
---|---|---|
function_name() |
関数を定義 | greet() { echo "Hello!"; } |
$1, $2, ... |
関数パラメータにアクセス | echo "Hello, $1!" |
$# |
パラメータの数を返す | echo "Number of parameters: $#" |
$@ |
すべてのパラメータを単語ごとに返す | for param in "$@"; do echo $param; done |
$* |
すべてのパラメータを単一の語として返す | echo "All parameters: $*" |
local |
ローカル変数を宣言 | local name="Alice" |
return |
関数を終了してステータスを返す | return 0 |
練習は完璧を生みます!これらの関数を試してみて、自分自身で作成してみましょう。すぐに複雑なスクリプトを書けるようになるでしょう。
このチュートリアルが役立ったことを願っています。codingを続けて、 remember - すべての専門家もかつては初心者でした。ハッピースクリプティング!
Credits: Image by storyset