2

阅读POSIX Shell 手册Bash 手册后,我仍然无法解释以下行为:

% 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 的。

有人可以解释这种行为吗?如果可能的话,可以指出文档中解释的地方吗?

提前致谢!

4

1 回答 1

0

此行为似乎特定于 Bash 3.2,并且该代码段在更高版本(如 4.2)上按预期工作。

于 2014-09-24T12:52:51.487 回答