我的 RoR 应用程序未正确加载,在将环境变量加载到文件.env
时发生第一个错误。
该脚本很简单,(应该(加载 .env 以启动 Rails 控制台:
basedir=/home/mapaapp/mapaapp/
cd $basedir/current
env $(cat $basedir/shared/.env | xargs) rails c
cd -
加载脚本时我得到了两个响应:cat: /shared/.env: No such file or directory
,即使知道这个目录中有一个 .env 文件env: #: No such file or directory
,我相信它指的是/usr/bin/env,它也存在。
此应用运行:
- Ubuntu 15.10 (GNU/Linux 4.2.0-42-generic x86_64(
- 导轨 4.2.1
- 红宝石 2.2.2p95
- nginx 1.9.3
- 美洲狮 2.15.3
知道是什么阻止rails c
开始吗?如果需要任何其他信息,我很乐意提供。
我想我会尝试的第一个想法是为您的路径使用一个字符串(更安全(并使用它的完整路径调用 env 可执行文件,因为 bash 脚本在子外壳中运行,env 命令可能不在 $PATH 变量中:
basedir="/home/mapaapp/mapaapp/"
cd "$basedir/current"
/usr/bin/env $(cat "$basedir/shared/.env" | xargs) rails c
cd -
现在看来你没有向 xargs 传递任何命令 具有以下格式的命令:
$(echo 1)
表示在子外壳中的括号之间执行命令并返回结果。所以我可以将值 1 分配给这样的变量:
a=$(echo 1)
所以我会尝试修改该行以确保使用 .env 文件中的参数:
/usr/bin/env $(cat "$basedir/shared/.env") | xargs rails c