注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿飘的博客

十里平湖霜满天 寸寸青丝愁华年

 
 
 

日志

 
 

linux 一串的命令执行()和{}  

2011-02-11 14:25:01|  分类: shell&c |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一串的命令执行()和{}
()和{}都是对一串的命令进行执行,但有所区别:
A,()只是对一串命令重新开一个子shell进行执行
B,{}对一串命令在当前shell执行
C,()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
D,()最后一个命令可以不用分号
E,{}最后一个命令要用分号
F,{}的第一个命令和左括号之间必须要有一个空格
G,()里的各命令不必和括号有空格
H,()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令

我们来看几个例子:
代码:
  var=test
  (var=notest; echo $var)       ###变量var值为notest,此是在子shell中有效
notest

  echo $var        ###父shell中值仍为test
test

  { var=notest; echo $var;}     ###注意左括号和var之间要有一个空格
notest

  echo $var                     ###父shell中的var变量的值变为了notest
notest

  { var1=test1;var2=test2;echo $var1>a;echo $var2;}    ###输出test1被重定向到文件a中,
test2                ###而test2输出则仍输出到标准输出中。

  cat a
test1

  { var1=test1;var2=test2;echo $var1;echo $var2;}>a             ###括号内命令的标准输出全部被重定向到文件a中
  cat a
test1
test2
  评论这张
 
阅读(628)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017