条件付き右(サブ)式でvarを割り当てる

条件付き右(サブ)式でvarを割り当てる

割り当てるときに変数を左に保持する方法を探していますが、まだきちんとした方法が見つかりませんでした。

  [[ "${selections[@]}" =~ "${package}" ]] && is_pkg_selected=true || is_pkg_selected=false
  test_package_loaded $package && is_pkg_installed=true || is_pkg_installed=false

  # ideal would be like...
  is_pkg_selected=$([[ "${selections[@]}" =~ "${package}" ]])
  is_pkg_installed=$(test_package_loaded $package && true || false)

どんなアイデアがありますか?複数行の変数を一緒に読むことは非常に困難です。

スクリプトは Raspbian を実行する RaspberryPi で実行されるため、可能な限り最善のshアプローチを好みます。

答え1

あなたはできます

is_pkg_selected=$([[ "${selections[@]}" =~ "${package}" ]] && echo true || echo false)
is_pkg_installed=$(test_package_loaded "$package" && echo true || echo false)

つまり、echo変数に割り当てるテキストを出力するには、コマンドの置換などを明示的に使用する必要があります。 (テキストtruefalse文字列だけを覚えてください。)

関連情報