对于我正在开发的一个项目,我们需要nginx和lua,我们就这样开始:
MYVAR1=some_value MYVAR2=some_value /usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c nginx.conf
一切正常。 相反,如果我们这样做:
export MYVAR1=some_value export MYVAR2=some_value /usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c nginx.conf
然后,在工作进程内运行的lua脚本抱怨MYVAR1和MYVAR2没有设置。 这两者有什么区别,为什么在第二版中nginx + lua没有选中呢?
如果在bash
下运行,应该没有区别, MYVAR1
/usr/local/openresty/nginx/sbin/nginx
执行完毕后, MYVAR1
和MYVAR2
将继续设置为相同的值。 你显示的第一个语法只会在nginx
执行期间存在variables。
现在,如果您不使用bash
(例如/bin/sh
或其他POSIX兼容shell),则可能需要使用其他语法,在export
它们之前设置环境variables:
MYVAR1=some_value export MYVAR1 MYVAR2=some_value export MYVAR2
我不知道你是从shellterminal还是通过shell脚本来做这件事,但是你可以通过下面的方法来判断:
ps -ef | grep $$ | grep -v grep
如果是/bin/sh
或其他shell,这是你的问题。 如果你是在shell脚本里面做的话,你可以改变文件的顶部( #!/...
)到#!/bin/bash
而不是#!/bin/sh
,或者使用sh符合语法。