質問: s3にログをsyncするのが成功したら、そのログを削除するという意味で以下のスクリプトを書きました。 aws s3 sync ${ログディレクトリ}/ ${S3ディレクトリ} if [ $? -eq 0 ]; then 削除処理 fi しかし、わざとs3のディレクトリが間違った状態で実行した時にも 削除処理が行われてしまいます。 もちろんS3にはsyncできていません。 if [ $? -eq 0 ]; then =「前の処理が成功したら」 という認識は間違っているのでしょうか。
回答: 存在しないバケットを指定すると`1`が返ってきたので動作上問題ないと思います。 ``` $ aws s3 sync ./ s3://存在しないバケット fatal error: An error occurred (NoSuchBucket) when calling the ListObjectsV2 operation: The specified bucket does not exist $ echo $? 1 ``` バケットは以下の存在しないディレクトリを指定すると新しいディレクトリが作成されてその下にsyncされます。 ※実際にはS3バケット配下ではそもそもディレクトリという概念はなく、実際にはオブジェクトです