AWS CLI S3 Sync排除不在脚本中工作,直接在终端中工作

时间:2018-05-29 20:22:31

标签: shell amazon-s3 centos sh aws-cli

我正在尝试创建一个shell脚本来管理我与s3-bucket的同步。 以下是我的剧本:

public static void main(String[] args) throws InterruptedException {
    MyIntegerBounded m = new MyIntegerBounded(24, 60);
    System.out.println(m.get());   // 24
    m.increment();
    System.out.println(m.get());   // 25
    m.add(40);
    System.out.println(m.get());   //  5
}

#!/bin/bash aws s3 sync $1 $2 $(for word in $(echo "$excludeconf"| tr ";" " "); do echo -n "--exclude \"$word\" "; done) $del --no-follow-symlinks $3 是来源 $1是目的地 $2是另一个传递的参数(dryrun)。 $3获取文件列表&文件夹$(word...并使用它们创建$excludeconf

如果我运行脚本,它不会排除任何内容。

如果我在上面的命令前加上--exclude ...,我就明白了:

echo

如果我复制该命令并在终端内手动运行它可以正常工作。

有什么想法吗?

仅供参考:我正在运行CentOS 7

编辑:

经过一些测试我发现问题是通配的:public / icon / *被解释为public / icon / folder1 public / icon / folder2如果我尝试设置noglob它将无法工作..是因为它在$(..)里面?

1 个答案:

答案 0 :(得分:0)

我已经在python中重写了脚本并将其更改为:

os.system("set -f noglob && aws s3.....")

那很有效。