Чтобы цикл работал только на 5-й итерации - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь написать встроенный цикл for, который будет выполняться на 5-й итерации и далее вывода команды.

Поэтому пропустите первые 5 и выполните на любой итерации, превышающей 5.

20191017t161323 --- skipped
20191018t074509 --- skipped
20191018t094457 --- skipped
20191018t103440 --- skipped
20191018t123800 --- skipped
20191018t132445 --- gcloud app versions delete "20191018t132445" --service="SERVICE_NAME" --format="value(VERSION)"
20191018t155251 --- gcloud app versions delete "20191018t155251" --service="SERVICE_NAME" --format="value(VERSION)"
20191021t070429 ...
20191021t075342 ...
...


for i in $(gcloud app versions list --service="SERVICE_NAME" --filter="SERVING_STATUS=STOPPED" --format="value(VERSION)"); do gcloud app versions delete "$i" --service="SERVICE_NAME" --format="value(VERSION)" --quiet; done

Разбивка

gcloud app versions list --service="SERVICE_NAME" --filter="SERVING_STATUS=STOPPED" --format="value(VERSION)"

вернет список идентификаторов, которые будут переданы в

gcloud app versions delete "$i" --service="SERVICE_NAME" --format="value(VERSION)" --quiet

Я хотел бы получитьэто запустить в строке без каких-либо файловых зависимостей. Это возможно?

Ответы [ 3 ]

1 голос
/ 28 октября 2019

Откажитесь от первых пяти строк с tail -n +6.

gcloud app versions list --service="SERVICE_NAME" --filter="SERVING_STATUS=STOPPED" --format="value(VERSION)" \
    | tail -n +6 \
    | xargs -I{} gcloud app versions delete {} --service="SERVICE_NAME" --format="value(VERSION)" --quiet
0 голосов
/ 29 октября 2019
i=1
for item in list ...; do
  if [ i -ge 5 ] ; then
     : actions to take for fifth item and later
  fi
  i=$((i + 1))
done
0 голосов
/ 29 октября 2019

Мне удалось выяснить это:

for i in $(gcloud app versions list --service="angular-dev" --filter="SERVING_STATUS=SERVING" --format="value(VERSION)" | sed -n "6,$p"); do gcloud app versions stop "$i" --service="angular-dev" --format="value(VERSION)"; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...