代码之家  ›  专栏  ›  技术社区  ›  code-8

通过bash访问.env变量的值

  •  -1
  • code-8  · 技术社区  · 7 年前

    这是我的 .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 ?

    我确信,我可以通过基于 =

    5 回复  |  直到 7 年前
        1
  •  2
  •   anubhava    7 年前

    您可以使用以下两种方法之一:

    awk -F= '$1 == "APP_URL" {print $2}' .env
    http://localhost:4202
    

    或者在子shell中获取此文件:

    ( source .env; echo "$APP_URL" )
    http://localhost:4202
    
        2
  •  2
  •   Inian    7 年前

    你可以 子shell中的文件,并直接访问变量值。使用命令替换可以帮助您实现这一点,

    url=$(. ./.env; printf '%s' "$APP_URL")
    

    . ./file $(..) 构造。

        3
  •  1
  •   RavinderSingh13 Nikita Bakshi    7 年前

    你可以试试导入 . ./.env 在你的盒子里,然后简单地打印 echo "$APP_URL" 然后你应该得到价值。

    解决方案二:

    sed -n '/APP_URL/s/.*=//p'  .env
    
        4
  •  1
  •   Adarsh Sojitra    7 年前

    我也是laravel的用户。如果在基目录中执行命令,请执行以下命令。

    grep -e "APP_URL" /path/to/.env | awk -F= '{print $2}'
    

    试着告诉我这是不是你要找的。

        5
  •  1
  •   kvantour    7 年前

    选项1:源文件

    $ source .env
    $ echo "$APP_URL"
    

    选项2:grep和xargs

    $ APP_URL=$(grep APP_URL .env | xargs)
    $ APP_URL=${APP_URL#*=}
    
    推荐文章