在对另一篇文章的评论中,@ JonathanLeffler表示:
{...} | somecommand在子shell中运行,不会影响父shell.演示:
man bash
(输出PQR,ABC,PQR三行)
确实:
X=PQR; echo $X; { X=ABC; echo $X; } | cat; echo $X
Run Code Online (Sandbox Code Playgroud)
但是,{ .. }
说man bash
不会在子shell中执行:
james@bodacious-wired:tmp$X=PQR; echo $X; { X=ABC; echo $X; } | cat; echo $X
PQR
ABC
PQR
Run Code Online (Sandbox Code Playgroud)
那么这里发生了什么?是echo $$
错?我知道管道的每个部分都在子shell中执行; 但我不知道这是如何导致观察到的行为.例如:
{ list; }
list is simply executed in the current shell environment. list must be
terminated with a newline or semicolon. This is known as a group …
Run Code Online (Sandbox Code Playgroud) 我正在尝试开始使用 Google App Engine。我在我的虚拟环境中安装了 python 2.6,我想使用它。但Google App Engine支持python2.5。所以我想用python 2.5设置另一个python虚拟环境。
你能帮我具体怎么做吗?