寻找一种在分配变量时将变量保留在左侧的方法,但我还没有找到简洁的方法。
[[ "${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
在命令替换中显式使用或类似的内容来输出要分配给变量的文本。 (记住,它是文本,true
而且false
只有字符串。)