在阅读POSIX Shell manual和Bash manual后,我仍然无法解释以下行为:
% bash --version
GNU bash, version 3.2.48(1)-release (x86_64-unknown-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
% bash
% A=1 B=$A bash -c 'echo $B'
1
% A=1 B=$A bash -c 'echo $B'
%
像zsh或ksh这样的其他shell正在做我期望的事情,那就是一直显示“1”。所以它似乎特定于Bash。
有人可以解释这种行为吗?如果可能,请指出文档中的解释位置?
提前致谢!
答案 0 :(得分:0)
此行为似乎特定于Bash 3.2,并且该代码段在更高版本中的预期效果为4.2。