如何在Linux中的每行字符后自动引用内容? (Elastic Beanstalk 环境变量相关)
How to auto quote content after character on each line in Linux? (Elastic Beanstalk environment variables related)
考虑以下文件:
APP_ENV=production
APP_NAME=Some API <- This line HERE
RDS_DB_PASSWORD=Some_Strong_Password
// etc...
此文件由 AWS Elastic Beanstalk 为我的环境自动生成,即我无法控制内容的格式。
当应用程序 运行s 时,它在内部传递环境变量并且工作正常。但是,当我尝试 运行 Laravel 命令时,如下所示,它不会转义每个变量的内容:
export $(sudo cat /opt/elasticbeanstalk/deployment/env) && sudo -E -u webapp php artisan some-command
因此,值 Some API
被传递为 Some
,因为它没有用引号引起来。
有没有办法在这个文件中第一个 =
之后的值周围插入引号,然后将它们传递到我的网络应用程序?或者,我是否 运行 错误地使用了我的命令?鉴于这是 Laravel 特定的,因此没有关于如何在 Elastic Beanstalk 运行ning Amazon Linux 2.运行 Laravel 上执行命令的文档。
我设法通过在应用程序部署时将变量导出到我的配置文件来解决这个问题,如下所示:
commands:
setvars:
command: /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/sh.local
参见参考资料 here。
考虑以下文件:
APP_ENV=production
APP_NAME=Some API <- This line HERE
RDS_DB_PASSWORD=Some_Strong_Password
// etc...
此文件由 AWS Elastic Beanstalk 为我的环境自动生成,即我无法控制内容的格式。
当应用程序 运行s 时,它在内部传递环境变量并且工作正常。但是,当我尝试 运行 Laravel 命令时,如下所示,它不会转义每个变量的内容:
export $(sudo cat /opt/elasticbeanstalk/deployment/env) && sudo -E -u webapp php artisan some-command
因此,值 Some API
被传递为 Some
,因为它没有用引号引起来。
有没有办法在这个文件中第一个 =
之后的值周围插入引号,然后将它们传递到我的网络应用程序?或者,我是否 运行 错误地使用了我的命令?鉴于这是 Laravel 特定的,因此没有关于如何在 Elastic Beanstalk 运行ning Amazon Linux 2.运行 Laravel 上执行命令的文档。
我设法通过在应用程序部署时将变量导出到我的配置文件来解决这个问题,如下所示:
commands:
setvars:
command: /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/sh.local
参见参考资料 here。