【发布时间】:2015-06-09 09:05:25
【问题描述】:
假设我在当前工作目录中有一个文件myfile。如果命令正常执行,我想设置一个变量,但也使用它的结果。
$ ls myfile && v=3
myfile
$ echo "$v"
3
但现在我也想通过管道传输结果,所以我使用{ list; } 语法对命令进行分组:
Bash reference manual -> 3.2.4.3 Grouping Commands 说:
{ list; }在大括号之间放置命令列表会导致列表 在当前 shell 上下文中执行。没有创建子shell。这 列表后面的分号(或换行符)是必需的。
所以,据我了解,v 应该设置为 3。但它没有发生。为什么?
【问题讨论】:
标签: bash