В качестве примера я создал две функции, потому что решил, что мне может понадобиться узнать размер файла и узнать, существует ли этот файл.
Эта функция получает размер файла и «возвращает» его как эхо:
s3_file_size() {
if command -v aws &> /dev/null; then
echo "$(aws s3 ls "${1}" --summarize | grep "Total.*Size" | grep -o -E '[0-9]+')"
return 0
else
echo "Warn-${FUNCNAME[0]}, AWS command missing."
return 1
fi
}
Эта функция использует другую, чтобы определить, получает ли она размер файла, равный 0, что будет означать, что файла по существу нет. (да, он будет рассматривать файл размера 0 как отсутствующий)
s3_does_file_exist() {
if command -v aws &> /dev/null; then
[[ $(s3_file_size "${1}") -lt 1 ]] && return 1 || return 0
else
echo "Warn-${FUNCNAME[0]}, AWS command missing."
return 1
fi
}