Bash

從條件右側(子)表達式分配 var

  • April 17, 2021

尋找一種在分配變數時將變數保留在左側的方法,但我還沒有找到一種簡潔的方法。

 [[ "${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盡可能多的方法。

你可以做

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

也就是說,您需要echo在命令替換中顯式地擁有或類似的東西來輸出要分配給變數的文本。(記住,它是文本,true而且false只有字元串。)

引用自:https://unix.stackexchange.com/questions/645564