首先让我说我认为这是我的问题。我不是 100% 确定。我希望有人能告诉我我在这里是否正确...
我正在编写一个脚本,用于从用户区的源代码安装我的首选服务器堆栈。该脚本的一部分涉及使用 PHP 插件安装 uWSGI。有问题的脚本部分是:
UWSGICONFIG_PHPDIR=${HOME}/php54 UWSGI_EMBED_PLUGINS=${uwsgiplugins} python2.7 uwsgiconfig.py --build
UWSGICONFIG_PHPDIR
是我自定义编译的 PHP 安装,UWSGI_EMBED_PLUGINS
是编译 uWSGI 的环境变量,插件嵌入在二进制文件中。我在脚本的开头通过 uwsgiplugins=php
设置了这个。
当我运行脚本时,PHP 插件没有编译成 uWSGI 二进制文件。我能想到的最好的是,这是尝试将脚本变量传递给环境变量的问题。如果,在我运行脚本后,我手动输入 UWSGICONFIG_PHPDIR=${HOME}/php54 UWSGI_EMBED_PLUGINS=php python2.7 uwsgiconfig.py --build
然后 uWSGI 二进制文件正确编译嵌入式 PHP 插件。
我在尝试将变量从 sh 脚本传递到命令行上的 env 变量时做错了什么吗?我应该通过不同的方法设置这些变量吗?
最佳答案
使用 env
命令并且不要伪造引用你的变量:
env UWSGICONFIG_PHPDIR="${HOME}/php54" UWSGI_EMBED_PLUGINS="${uwsgiplugins}" python2.7 uwsgiconfig.py --build
关于linux - ENV_VAR=${sh_var} 在 sh 脚本中设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419453/