首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash脚本由于参数中的空格而导致未知选项失败

Bash脚本由于参数中的空格而导致未知选项失败
EN

Stack Overflow用户
提问于 2017-11-04 13:07:50
回答 2查看 1.9K关注 0票数 2

我正在尝试运行aws创建lambda函数。它是这样的-

代码语言:javascript
复制
eval $(aws lambda create-function \
--function-name $FUNCTION_NAME \
--runtime $RUNTIME \
--role $ROLE \
--handler $HANDLER \
--region $REGION \
--zip-file $ZIP_FILE \
--profile $PROFILE \
--environment $env_variables)

所有变量都来自命令行。对于env_variables来说,这是失败的。它被构造成-

代码语言:javascript
复制
env_variables="Variables={INPUT=${DAYS}}"

天实际上是"20 days"的地方

我如何避免这个空间并成功地传递我的命令。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-04 14:40:47

最后,在工作之后-

代码语言:javascript
复制
env_variables="\"Variables\":{\"INPUT\":\"${DAYS}\"}"

lambda_create_command="aws lambda create-function --function-name $FUNCTION_NAME --runtime $RUNTIME --role $ROLE --handler $HANDLER --region $REGION --zip-file $ZIP_FILE --profile $PROFILE --environment '$env_variables'"

echo "Executing command : $lambda_create_command"

eval $lambda_create_command

重要的一点-

  1. env_variables中的引号
  2. eval的使用
  3. 命令字符串(即$env_variables )中的单引号

参考- https://gist.github.com/andywirv/f312d561c9702522f6d4ede1fe2750bd

完整工作代码:https://gist.github.com/aniket91/19492b32f570ece202718153661b1823

票数 0
EN

Stack Overflow用户

发布于 2017-11-04 13:22:37

该值需要用引号包装,请尝试如下:

代码语言:javascript
复制
env_variables="Variables=\"{INPUT=${DAYS}}\""
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47111075

复制
相关文章

相似问题

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