ダイアログボックスでリスト選択を変数の別々の行に強制する方法

ダイアログボックスでリスト選択を変数の別々の行に強制する方法

以下のコードを使用して、ユーザーがインストールするソフトウェアを選択できるメニューを提供しています。その後、これらの選択を関数呼び出しとして使用してインストールを実行しようとします。

OPTIONS=$(dialog --no-tags --clear --backtitle "Installer Options..." --title "Software Selection" \
    --checklist "Use SPACE to select/deselct options and OK when finished."  30 100 30 \
       install_software_a "Install software A" off \
       install_software_b "Install software B" off \
       install_software_c "Install software C" off 2>&1 > /dev/tty)
$OPTIONS

このコードは選択項目をキャプチャするのに有効です。私が経験している問題は、次のように最初の2行を選択した場合、選択を1行に書き込むことです。

install_software_a install_software_b

$OPTIONSが呼び出されると、最初に選択したソフトウェアのみがインストールされます。 OPTIONS変数の型を指定して、次のように別々の行に選択項目を作成する方法はありますか?

install_software_a
install_software_b

ティア!

ベストアンサー1

awk複数文字のレコード区切り文字(動作する最新の実装)をサポートするバージョンがある場合は、次の呼び出しを使用してawkデータを置き換えることができます。

echo "$options" | awk -v RS="[ \n]" '1'

おすすめ記事