인수의 공백으로 인해 알 수 없는 옵션으로 Bash 스크립트가 실패합니다.

인수의 공백으로 인해 알 수 없는 옵션으로 Bash 스크립트가 실패합니다.

aws create 람다 함수를 실행하려고 합니다. 일어난 일은 다음과 같습니다——

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. 명령 문자열의 작은따옴표, 즉$env_variables

인용하다 -https://gist.github.com/andywirv/f312d561c9702522f6d4ede1fe2750bd

관련 정보