KornShell布尔条件逻辑

Fre*_*red 3 unix shell scripting ksh

我对我写的这个KornShell(ksh)脚本有些困惑,主要是用布尔和条件语.

所以我的脚本的第一部分,我catmewcme两个设置为truefalse.这部分工作正常,因为我已经尝试过echo它们并产生了预期的结果.后来,我有这个代码:

if [[ $catme ]] ; then
    some commands
fi
Run Code Online (Sandbox Code Playgroud)

我再说一遍wcme.但是,出乎意料的是,无论是什么wcme,catme我的if语句中的命令都会被执行.

这是语法错误吗?我尝试过,[[ $catme -eq true ]]但似乎也没有用.有人能指出我正确的方向吗?

gah*_*ooa 9

test并且[是一回事.你需要test从if语句中删除命令,所以它看起来像这样:

if $catme; then
    some commands
fi
Run Code Online (Sandbox Code Playgroud)

输入man test以获取更多信息.

例如:

$ v=true  
$ $v
$ if $v; then
>   echo "PRINTED"
> fi
PRINTED

$ v=false
$ if $v; then
>   echo "PRINTED"
> fi
$ 
Run Code Online (Sandbox Code Playgroud)