関数にパラメータを渡すことについて質問したいと思います。私はこれを試しました:
function_name $var1 $var2
しかし、一般的に(時には印刷エラーが発生した場合)、合格するかどうかには違いはありません。ただ呼び出すと完璧に動作することを意味しますfunction_name
。だから私の質問は:上記の例のようにこれらのパラメータを提供する必要がありますか?
ベストアンサー1
Cにはプロトタイプがないため、Bashは関数に渡された引数の数を確認しません。https://www.gnu.org/software/bash/manual/bash.html#Shell-Functions:
シェル関数は、グループの単一名を使用して後で実行できるようにコマンドをグループ化する方法です。これは「一般」コマンドのように実行されます。シェル関数の名前を単純なコマンド名として使用すると、その関数名に関連付けられたコマンドのリストが実行されます。シェル機能は現在シェルのコンテキストで実行され、それを解釈するための新しいプロセスは作成されません。
関数を宣言するには、次の構文を使用します。
name() 複合コマンド [リダイレクト]
または
関数名[()] 複合命令 [リダイレクト]
1つのアプローチは、関数内の複数のパラメータが正しいことを確認し、そうでない場合はエラーを返すことです。しかし、これはBashの責任ではありません。望むより:
#!/bin/bash
function f()
{
echo $1
}
function f1
{
echo $1
}
f
f 2
f1
f1 f1