Script do Bash falhando com opção desconhecida devido ao espaço no argumento [duplicado]

0

Estou tentando executar a função aws create lambda. É o seguinte -

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)

Todas as variáveis vêm da linha de comando. Está a falhar por env_variables. Isso é construído como -

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

em que DAYS é na verdade "20 days"

Como posso evitar esse espaço e passar meu comando com sucesso?

    
por Aniket Thakur 04.11.2017 / 14:45

1 resposta

0

Finalmente, depois de trabalhado -

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

Pontos importantes -

  1. Citações em env_variables
  2. Uso de eval
  3. Aspas simples na sequência de comandos, por exemplo, $env_variables

Referência - link

    
por 04.11.2017 / 15:38