Bash
從條件右側(子)表達式分配 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
盡可能多的方法。
你可以做
is_pkg_selected=$([[ "${selections[@]}" =~ "${package}" ]] && echo true || echo false) is_pkg_installed=$(test_package_loaded "$package" && echo true || echo false)
也就是說,您需要
echo
在命令替換中顯式地擁有或類似的東西來輸出要分配給變數的文本。(記住,它是文本,true
而且false
只有字元串。)