4

param でスクリプトを実行します-A AA/BB。AA と BB の配列を取得するには、これを行うことができます。

INPUT_PARAM=(${AIRLINE_OPTION//-A / }) #get rid of the '-A ' in the begining
LIST=(${AIRLINES_PARAM//\// })         # split by '/'

これを 1 行で実現できますか?

前もって感謝します。

4

3 に答える 3

4

一方通行

IFS=/ read -r -a LIST <<< "${AIRLINE_OPTION//-A /}"

これは、パラメーター置換からの出力を${AIRLINE_OPTION//-A /}「here-string」に配置し、bashread組み込みを使用してこれを配列に解析します。分割は、コマンドにto/の値を設定することによって実現されます。IFS/read

于 2013-09-27T13:47:06.440 に答える
2

awkたとえば、 を使用すると、配列を作成して変数に格納できますLIST

$ LIST=($(awk -F"[\/ ]" '{print $2,$3}' <<< "-A AA/BB"))

結果:

$ echo ${LIST[0]}
AA
$ echo ${LIST[1]}
BB

説明

  • -F"[\/ ]"は、スペースまたはスラッシュの 2 つのフィールド区切り文字を定義します/
  • '{print $2$3}'これらのセパレーターに基づいて 2 番目と 3 番目のフィールドを出力します。
于 2013-09-27T13:46:08.930 に答える