如何在Linux中每行字符后自动引用内容? (Elastic Beanstalk 环境变量相关)

Posted

技术标签:

【中文标题】如何在Linux中每行字符后自动引用内容? (Elastic Beanstalk 环境变量相关)【英文标题】:How to auto quote content after character on each line in Linux? (Elastic Beanstalk environment variables related) 【发布时间】:2021-06-03 20:11:11 【问题描述】:

考虑以下文件:

APP_ENV=production
APP_NAME=Some API <- This line HERE
RDS_DB_PASSWORD=Some_Strong_Password
// etc...

此文件由 AWS Elastic Beanstalk 为我的环境自动生成,即我无法控制内容的格式。

当应用程序运行时,它会在内部传递环境变量,这可以正常工作。但是,当我尝试运行如下 Laravel 命令时,它不会转义每个变量的内容:

export $(sudo cat /opt/elasticbeanstalk/deployment/env) && sudo -E -u webapp php artisan some-command

因此,值 Some API 将作为 Some 传递,因为它没有用引号括起来。

有没有办法在此文件中动态插入第一个 = 之后的值,然后将它们传递给我的网络应用程序?或者,我是否错误地运行了我的命令?鉴于这是 Laravel 特有的,没有关于如何在运行 Amazon Linux 2 的 Elastic Beanstalk 上运行 Laravel 命令的文档。

【问题讨论】:

【参考方案1】:

我设法通过在应用程序部署时将变量导出到我的配置文件来解决这个问题,如下所示:

commands:
    setvars:
        command: /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/sh.local

参见参考here。

【讨论】:

以上是关于如何在Linux中每行字符后自动引用内容? (Elastic Beanstalk 环境变量相关)的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令之控制输出内容所占屏幕宽度fold

el-table没有数据位置会变

解决一行文本溢出隐藏点击展开之后全部显示并自动换行每行长度一致问题

批处理如何提取文本文件中每行字符串,每行单独存放不同文本中?

linux中如何对一个文本内容进行排序呢

linux中如何对一个文本内容进行排序呢