首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将带有多个标志的字符串分配给命令中可重用的变量?

如何将带有多个标志的字符串分配给命令中可重用的变量?
EN

Stack Overflow用户
提问于 2021-10-18 14:24:27
回答 1查看 211关注 0票数 0

在脚本中,我有两个带有基本相同标志的命令,我希望避免重复。

代码语言:javascript
复制
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"

但在这种情况下,这是一个字符串,而不是多个标志。我想我需要以某种方式拆分字符串(考虑到换行符和变量替换)。

最简单的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-18 14:59:05

代码语言:javascript
复制
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[@]}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69617809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档