gpt4 book ai didi

linux - Shell:如何从多个参数创建列表变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:52 26 4
gpt4 key购买 nike

我的 shell 脚本运行带有 3 个或更多参数的 cli 命令,我无法提前指定将传递给脚本的参数数量。

cmd=$(aws emr add-steps --cluster-id ${1} --steps Type=CUSTOM_JAR, Jar=s3://elasticmapreduce/libs/script-runner/script-runner.jar, Name="$2",Args=[$3,$4,....])

我试图用 Args=[${@:3}] 替换 Args=[$3,$4,....] 但参数不是逗号-分开。

最佳答案

在命令替换中更改 IFS 的值并使用 $* 代替 $@:

cmd=$(IFS=,;
aws emr add-steps --cluster-id ${$1} \
--steps Type=CUSTOM_JAR, \
Jar=s3://elasticmapreduce/libs/script-runner/script-runner.jar, \
Name="$2",Args=["${*:3}"])

IFS=, 之后的分号是可选的,只要对 aws 的调用在下一行开始,而不是在赋值之后立即开始。

顺便说一下,

${$1} 是一个语法错误。

关于linux - Shell:如何从多个参数创建列表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44028781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com