在脚本中,我有两个带有基本相同标志的命令,我希望避免重复。
if ...
gcloud pubsub subscriptions create mysub \
--topic mytopic
--push-endpoint="$SUBSCRIPTION_ENDPOINT" \
--ack-deadline=$ACK_DEADLINE \
--max-delivery-attempts=$MAX_DELIVERY_ATTEMPTS \
--dead-letter-topic=$DEADLETTER_TOPIC \
--min-retry-delay=$MIN_RETRY \
--max-retry-delay=$MAX_RETRY
else
gcloud pubsub subscriptions update mysub
-push-endpoint="$SUBSCRIPTION_ENDPOINT" \
--ack-deadline=$ACK_DEADLINE \
--max-delivery-attempts=$MAX_DELIVERY_ATTEMPTS \
--dead-letter-topic=$DEADLETTER_TOPIC \
--min-retry-delay=$MIN_RETRY \
--max-retry-delay=$MAX_RETRY
fi
FLAGS="--push-endpoint=$SUBSCRIPTION_ENDPOINT \
--ack-deadline=$ACK_DEADLINE \
--max-delivery-attempts=$MAX_DELIVERY_ATTEMPTS \
--dead-letter-topic=$DEADLETTER_TOPIC \
--min-retry-delay=$MIN_RETRY \
--max-retry-delay=$MAX_RETRY"但在这种情况下,这是一个字符串,而不是多个标志。我想我需要以某种方式拆分字符串(考虑到换行符和变量替换)。
最简单的方法是什么?
发布于 2021-10-18 14:59:05
if ...; then
COMMAND_PREFIX=(gcloud pubsub subscriptions create mysub)
else
COMMAND_PREFIX=(gcloud pubsub subscriptions update mysub)
fi
COMMAND=(
"${COMMAND_PREFIX[@]}"
"--push-endpoint=$SUBSCRIPTION_ENDPOINT"
"--ack-deadline=$ACK_DEADLINE"
"--max-delivery-attempts=$MAX_DELIVERY_ATTEMPTS"
"--dead-letter-topic=$DEADLETTER_TOPIC"
"--min-retry-delay=$MIN_RETRY"
"--max-retry-delay=$MAX_RETRY")
"${COMMAND[@]}"https://stackoverflow.com/questions/69617809
复制相似问题