使用if语句时,bash脚本会发出命令not found错误

时间:2017-05-23 09:00:28

标签: linux bash debian

我正在编写一个bash脚本,当脚本运行时,它将在我的AWS(亚马逊网络服务)存储桶上传某些文件。我正在尝试通过在bash脚本中使用“if”语句并搜索来从AWS获得确认我要确认的文件名已被复制到存储桶中。这是代码 -

if [`echo $(s3cmd ls s3://my-bucket/) | grep -c "file.txt" ` -gt 0 ]
    then

    echo "Success"; 
else

    echo "fail";

fi

当我运行此脚本时,它会给我一个错误

./myBash.sh: line 21: [1: command not found

它说第21行还有其余的代码(与代码的这部分无关,因为我只是在那里运行了一些回声)

任何人都可以帮忙吗?我在网上搜索,但没有找到任何满意的结果。

我在我的Raspberry Pi上运行debian linux(Jesse)

1 个答案:

答案 0 :(得分:1)

[

之后添加空格
if [ `echo $(s3cmd ls s3://my-bucket/) | grep -c "file.txt" ` -gt 0 ]

您的反引号命令会扩展为1,所以您现在拥有

if [1 -gt 0 ]

这意味着shell正在尝试运行[1作为命令,并且不存在这样的命令。