Bash脚本 - if块中的布尔值?

Ste*_*eam 0 unix linux bash boolean

我尝试了这篇SO帖子中的代码 - 如何评估bash中if块中的布尔变量?它不起作用.看起来BASH中没有布尔值.有没有完美的解决方法让我在BASH中设置和检查布尔值?

我的代码 -

#!/bin/bash
flag=true
if [ $flag ]
echo 'True'
#flag=false
#echo 'Now changed to false' 
fi
Run Code Online (Sandbox Code Playgroud)

即使第2行中的flag = false,输出仍为True.为什么?

Cri*_*ses 10

尝试没有方括号,像这样

#!/bin/bash
flag=true
if $flag ; then
   echo 'True'
   #flag=false
   #echo 'Now changed to false' 
fi
Run Code Online (Sandbox Code Playgroud)