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 行で実現できますか?
前もって感謝します。
一方通行
IFS=/ read -r -a LIST <<< "${AIRLINE_OPTION//-A /}"
これは、パラメーター置換からの出力を${AIRLINE_OPTION//-A /}「here-string」に配置し、bashread組み込みを使用してこれを配列に解析します。分割は、コマンドにto/の値を設定することによって実現されます。IFS/read
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 番目のフィールドを出力します。