Shell Scripting; if语句输出意外的运算符?

时间:2016-01-28 16:39:26

标签: bash shell

我试图写一个shell脚本来删除0kb文件,但if语句一直给我错误,我想知道你是否可以帮我解决

我有:

#!/bin/sh
EMPTY_FILE=$(find ${1-.} -size 0)
echo $EMPTY_FILE
echo "delete"
read text
if [ "$text" == "yes" ]; then echo yes; fi

错误是

./deleteEmpty.sh: 6: [: yes: unexpected operator

任何有关错误的帮助都很有用!感谢

3 个答案:

答案 0 :(得分:3)

在plain sh中,相等运算符是===是一种基础。将您的shebang行更改为#!/bin/bash,或将测试更改为:

if [ "$text" = "yes" ]; then echo yes; fi

如果你使用bash,I recommend using [[ instead of [

#!/bin/bash

if [[ $text == yes ]]; then echo yes; fi

答案 1 :(得分:0)

尝试使用双括号:

if [[ "$text" == "yes" ]]; then echo yes; fi

答案 2 :(得分:0)

我想你想用bash。在这种情况下,脚本的第一行应该是

#!/bin/bash