这是我的JobDateRange
.env
如果我运行APP_NAME=Admin
APP_URL=http://localhost:4202
JWT=secret12345
PORT=3002
,我会得到cat .env | grep APP_URL
。
我需要运行什么才能只获得值APP_URL=http://localhost:4202
?
我敢肯定,我可以通过基于http://localhost:4202
符号分解字符串,并基于数组的第二个元素来获取它,但是我希望有一个一种更干净的方式。
答案 0 :(得分:2)
您可以在子外壳中 source 文件并直接访问变量值。使用命令替换可以帮助您实现这一目标,
url=$(. ./.env; printf '%s' "$APP_URL")
执行. ./file
是一种POSIX方式,用于将文件提供给正在运行的shell,在我们的例子中,是在$(..)
结构下进行的。
答案 1 :(得分:2)
您可以使用以下两种方式之一:
awk解决方案:
awk -F= '$1 == "APP_URL" {print $2}' .env
http://localhost:4202
或在子外壳中获取该文件:
( source .env; echo "$APP_URL" )
http://localhost:4202
答案 2 :(得分:1)
解决方案第一: :您可以尝试将其. ./.env
导入到框中,然后简单地打印echo "$APP_URL"
,然后应该会得到值。
解决方案2nd: :如果您想将其读取为Input_file,请执行以下操作。
sed -n '/APP_URL/s/.*=//p' .env
答案 3 :(得分:1)
选项1:源文件
$ source .env
$ echo "$APP_URL"
选项2:grep和xargs
$ APP_URL=$(grep APP_URL .env | xargs)
$ APP_URL=${APP_URL#*=}
答案 4 :(得分:1)
我也是laravel用户。如果要在基本目录中执行该命令,请执行以下命令。
grep -e "APP_URL" /path/to/.env | awk -F= '{print $2}'
尝试并让我知道这是否是您想要的。