将文字字符串(例如“True”转换为适当的 bash 布尔变量)的最佳方法是什么。例如 java 有 java.lang.Boolean.valueOf(String)
现在我在 Bash 中使用它:
if [ "${answers[2]}" = "TRUE" ] ; then
clean=true;
else
clean=false;
fi
有没有办法做到这一点并避免 IF 声明?
编辑:澄清它不是通过选择我有包含“TRUE”的字符串变量而不是仅仅使用布尔变量。对于完整的上下文,这是代码
ans=$(yad --title='YadExample' --form --field=Opt1:CHK FALSE --field=Opt2:CHK FALSE --field=Opt3:CHK TRUE);
#at this point the "yad" program is returning a string seperated by '|', e.g "TRUE|FALSE|TRUE"
IFS="|"
set -- $ans
answers=( $@ )
unset IFS
if [ "${answers[0]}" = "TRUE" ] ; then clean=true; else clean=false; fi
if [ "${answers[1]}" = "TRUE" ] ; then var2=true; else var2=false; fi
if [ "${answers[2]}" = "TRUE" ] ; then var3=true; else var3=false; fi