我正在编写一个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)
答案 0 :(得分:1)
在[
:
if [ `echo $(s3cmd ls s3://my-bucket/) | grep -c "file.txt" ` -gt 0 ]
您的反引号命令会扩展为1
,所以您现在拥有
if [1 -gt 0 ]
这意味着shell正在尝试运行[1
作为命令,并且不存在这样的命令。