由于参数中有空格,Bash 脚本因未知选项而失败

由于参数中有空格,Bash 脚本因未知选项而失败

我正在尝试运行 aws create lambda 函数。事情的经过如下——

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 失败。这被构造为 -

env_variables="Variables={INPUT=${DAYS}}"

DAYS 实际上是"20 days"

我怎样才能避开这个空间并成功地传递我的命令。

答案1

最后以下工作成功了 -

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. 命令字符串中的单引号 ie$env_variables

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

相关内容