我有这个简化的命令,在 .bashrc 函数中执行:
aws sso login --profile myprofile --cli-read-timeout 5
我正在尝试用选项数组替换命令选项:
params=('--profile myprofile')
params+=('--cli-read-timeout 5')
aws sso login "${params[*]}"
AWS 抱怨未知选项:
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
Unknown options: --profile myprofile --cli-read-timeout 5
为了正确执行命令,应使用什么正确的格式?
选项名称及其参数必须是单独的数组元素。
或者您可以使用
--option=value
语法:此外,您必须使用
${params[@]}
而不是${params[*]}
,以便每个数组元素将扩展为单独的单词。您的代码相当于将所有参数组合成一个参数: