在bash里面要设置环境变量需要export或者foo=abc ./bar.
直接赋值没有环境变量的效果.
代码: 全选
$ cat b.c
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("%s\n",getenv("abc")?:"NULL");
return 0;
}
$ gcc b.c
$ ./a.out
NULL
$ abc=1 ./a.out
1
$ abc=2
$ ./a.out
NULL
$ export abc
$ ./a.out
2
common lisp版本,用的clozure common lisp
代码: 全选
$ foo=1 ccl -e '(princ (ccl::getenv "foo"))' -b -Q < /dev/null
1
$ foo=3
$ ccl -e '(princ (ccl::getenv "foo"))' -b -Q < /dev/null
NIL
$ export foo
$ ccl -e '(princ (ccl::getenv "foo"))' -b -Q < /dev/null
3