パラメータ配列をマッピングして文字列に変換する

パラメータ配列をマッピングして文字列に変換する

私にこれらがあるとします。強く打つスクリプトの機能:

foo(){
  my_args_array=("$@")
  export my_args="${my_args_array[@]}"
  bar $my_args
}

bar(){
  echo "number of args: $#";
}


foo a b 'c d e'

上記のスクリプトを実行すると、次のような結果が得られます。

パラメータ数:5

しかし、私が探しているものは次のとおりです。

パラメータ数:3

my_args_array[@]だから私の質問は - 各要素を一重引用符で囲むことができるように返された値をマッピングする方法はありますか?または、環境変数文字列を元のコマンドライン引数のように見せるために必要なすべての操作を実行します。

ベストアンサー1

文字列ではなく配列を使用してください。

#!/bin/bash
foo(){
  my_args=("$@")
  bar "${my_args[@]}"
}

bar(){
  echo "number of args: $#";
}


foo a b 'c d e'

おすすめ記事