Расширение переменной внутри кавычек

Я предполагаю, что вы запускаете go.sh &, а не только go.sh, а затем jobs, так как это тривиально (не ожидается сообщения о задании после его завершения ).

Ваш сценарий запускает два задания в фоновом режиме и готово. Так что вы этого не видите. Вы также не видите задания, запускаемые сценарием, поскольку это другая оболочка. Если вы хотите увидеть задания, вместо выполнения сценария используйте его источник.

. go.sh; jobs

Теперь вы должны увидеть два списка вакансий.

Если вы предпочитаете выполнять скрипт и по-прежнему рассматривать его как задание, скажите ему подождать, пока закончатся его дочерние элементы. Добавьте waitперед его концом. Вы также можете вызвать jobsиз скрипта.

0
26.05.2020, 07:08
1 ответ

У вас двойная странная ошибка подстановки команд:

вместо кодирования

$(`date +%m%d`)

вы должны написать только:

$(date +%m%d)

Обратная кавычка (`)используется в старой подстановке команд в стиле -, например

foo=`command`

Вместо этого рекомендуется использовать синтаксис foo=$(command). Обработка обратной косой черты внутри $()менее удивительна, а $()проще вложить. См.http://mywiki.wooledge.org/BashFAQ/082

Проверка расширяющихся переменных

declare -a files=( "A1S0" "D1S0" "D2S0" "D3S0" "D4S0" "D5S0" "D6S0" )
for n in "${!files[@]}"; do
    echo aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query "Contents[?contains(Key, '${files[n]}$(date +%m%d)')]" 
done 

Выход

aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query Contents[?contains(Key, 'A1S00526')]
aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query Contents[?contains(Key, 'D1S00526')]
aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query Contents[?contains(Key, 'D2S00526')]
aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query Contents[?contains(Key, 'D3S00526')]
aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query Contents[?contains(Key, 'D4S00526')]
aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query Contents[?contains(Key, 'D5S00526')]
aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query Contents[?contains(Key, 'D6S00526')]

Ключ содержит расширенную дату0526

2
18.03.2021, 23:32

Теги

Похожие вопросы