相关疑难解决方法(0)

Bash if 语句 [: missing `]' 错误

我在使用 bash 时遇到问题。我试图将命令放入if语句中,然后将其与字符串进行比较。

这完美地工作。

echo $(ipcs | grep Shared | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)

当我把它放在if声明中时,我遇到了一些问题。

$ if [ "$(ipcs | grep Shared | awk '{print $2}')" -eq "Shared"]; then
  echo expression evaluated as true;
else
  echo expression evaluated as false;
fi
bash: [: missing `]'
expression evaluated as false

$ if [ "$(ipcs | grep Shared | awk '{print $2}')" = "Shared"]; then
  echo expression evaluated as true;
else
  echo expression evaluated as false;
fi
bash: [: …
Run Code Online (Sandbox Code Playgroud)

bash shell-script test

59
推荐指数
1
解决办法
16万
查看次数

if 条件中的括号:为什么我会收到没有空格的语法错误?

当脚本在一年的开始两天运行时,我使用下面的脚本将两天后移,并检查每个月的第一天和第二天,然后将后移两天。

if [$month="01"] && [$day="01"]; then
        date="$last_month/$yes_day/$last_year"
        fulldate="$last_month/$yes_day/$last_year"
else
        if [$month="01"] && [$day="02"]; then
                date="$last_month/$yes_day/$last_year"
                fulldate="$last_month/$yes_day/$last_year"
        else
                if [ $day = "01" ]; then
                        date="$last_month/$yes_day/$year"
                        fulldate="$year$last_month$yes_day"
                else
                        if [ $day = "02" ]; then
                                date="$last_month/$yes_day/$year"
                                fulldate="$year$last_month$yes_day"
                        else
                                date="$month/$yes_day/$year"
                                fulldate="$year$month$yes_day"
                        fi
                fi
        fi
fi
Run Code Online (Sandbox Code Playgroud)

但我的坏消息是收到以下错误消息

Etime_script.sh: line 19: [06=01]: command not found
Etime_script.sh: line 24: [06=01]: command not found
Run Code Online (Sandbox Code Playgroud)

shell bash shell-script whitespace test

18
推荐指数
2
解决办法
7709
查看次数

标签 统计

bash ×2

shell-script ×2

test ×2

shell ×1

whitespace ×1