我可能是在1990年代中期在Usenet上发现的(!)
export var=value
是Bashism,而可移植的表达是
var=value
export var
我一直提倡这一点,但是最近有人挑战了我,我真的找不到任何文档来支持我的坚定信念。
谷歌搜索"export: command not found"
似乎并没有提出任何实际有人遇到这个问题的案例,因此即使它是真实的,我想也不是很常见。
(我发现的命中点似乎是新手,他们复制/粘贴了标点符号,并最终使用了'export: command not found
或类似的东西,或者试图export
与sudo
; 一起使用;而新手csh
用户则尝试使用Bourne shell语法。)
我可以肯定地说它可以在OS X以及各种Linux发行版上运行,包括sh
is dash
。
sh$ export var=value
sh$ echo "$var"
value
sh$ sh -c 'echo "$var"' # see that it really is exported
value
在当今世界,可以安全地说export var=value
使用安全吗?
我想了解后果是什么。如果它不能移植到v7“ Bourne classic”中,那就比琐事多了。如果在生产系统中shell确实无法使用此语法,那么了解这一点将很有用。
busybox
具有自己的最小外壳吗?(我无法在这一秒尝试尝试任何一种。)