「文字列」で始まる変数と同じ数の引数を関数に渡すことはできますか?

「文字列」で始まる変数と同じ数の引数を関数に渡すことはできますか?

例:

VARIABLE1="/foo/bar"
VARIABLE2="/some/other/path"
# etc you don't know how many variables there is, maybe 3 maybe 30.
# Then :
randomfunction $VARIABLE1 $VARIABLE2 #... <- How do I replace this to something that would include every variable starting with name "VARIABLE"

編集する

誤解のある部分があり、別の言葉で表現します。

どうやって作りますか?

VAR1="foo"
VAR2="bar"
VAR3="job"

出力は次のとおりです

"foo bar job"VARの数がわからない場合は、VAR4、VAR5などがある可能性があります。

ベストアンサー1

引数なしでコマンドを実行すると、setセッションに設定されたすべての変数と関数が出力されます。これを念頭に置いて変数をフィルタリングし、目的の「文字列」で配列に割り当ててから配列を渡します。関数。

ALL_VARIABLES=( $(set | grep -Ea '^VARIABLE.*=' | cut -d = -f 2) )
randomfunction "${ALL_VARIABLES[@]}"

デフォルトでは、文字と等号で始まるすべての行の出力を取得し、setそれを個々の名前と値に渡し、すべての値を配列に割り当ててから拡張してパラメータとして渡します。grepVARIABLEcutALL_VARIABLESrandomfunction

おすすめ記事