У меня установлен aws
cli. Я просто не знаю, как это сделать в оболочке script.
когда я запускаю команду aws s3 ls s3://bucket
, это даст мне что-то вроде этого
При вызове операции ListObjects произошла ошибка клиента (NoSuchBucket): указанное ведро не существует
Это означает, что ведро не существует. Поэтому я хочу запустить это из оболочки script и проверить, найден ли grep
. Но моя команда не работает.
if [ $(aws s3 ls "s3://$S3_BUCKET" | grep 'NoSuchBucket' &> /dev/null) == 0 ]
then
echo "$S3_BUCKET doesn\'t exist please check again"
exit
fi
Он просто дал мне это
backup.sh: 20: [: 0: неожиданный оператор
Обновление
Я изменил script на
echo "S3_BUCKET=$S3_BUCKET"
if aws s3 ls "s3://$S3_BUCKET" | grep -q 'AllAccessDisabled'
then
echo "$S3_BUCKET doesn\'t exist please check again"
exit
fi
И это результат, который я получил
A client error (AllAccessDisabled) occurred when calling the ListObjects operation: All access to this object has been disabled
Итак, текст содержит AllAccessDisabled
, но я все еще не echo
в следующей строке.