У меня есть aws
cli установлен. Я просто не уверен, как это сделать в сценарии оболочки.Как использовать сценарий оболочки для проверки наличия ведра?
при запуске команды aws s3 ls s3://bucket
это дало бы мне что-то вроде этого
Ошибка клиента (NoSuchBucket) произошло при вызове операции ListObjects: Указанный ковш не существует
Это означает, что ковша не существует. Поэтому я хочу запустить это из сценария оболочки и проверить, найден ли его 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: неожиданный оператор
Обновлено
Я изменил сценарий, чтобы быть
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
следующую строку.
Он по-прежнему не работает, я буду обновлять свой вопрос. – toy
Это ошибка выхода. Вероятно, это будет стандартная ошибка, а не стандартный вывод. Для этого вам нужно перенаправить. См. Обновленный код. –