shitou's blog 
Home About Feed | 十人族 MIX BOY 塌客

Category "linux"

17
Sep

( ),{ }的区别 by shitou

1

在shell中(), {}的区别可能平时不太注意的,但如果真正理解了他们的区别的话,更有助于理解shell,

 

()和{}都是用来包含代码块的,()将会重新fork一个子进程,在shell中父进程的变量及资源都会继承到子进程,反过来不行,{}多是用来定义函数时用的,所以就比较好理解了,还是先打开shell动下手:)

 

$a=1

$echo $a

$1

${ b=1; echo $b; }

$1

$echo $b

$1

$(c=1;echo $c)

$1

$echo $c

$


从上面的执行结果就可以看出来了,最终的echo $c的结果为空,因为c的定义是在()开启的子进程中定义的,不能传递到当前shell(即父进程)的.

 

理解了上面的,理解exec与source(或者.)的区别就比较简单了,

exec command_or_script 将会开启一个子进程来运行后面的command或者是script, 并且将同时终止当前父进程

source script_name 一般用在调用其他脚本到当前文件环境中来,相当于ruby的require或者php的include, 调用的脚本文件同当前文件位于同一进程

 

可以试下:

$exec echo "hello" > file

执行后你当前登录的shell将会退出,让你重新登录, 同时hello将会写入file中

 

Tags: shell

2008-09-17 15:22:23, 751 reviews

send to mailbox

Your email:

Related Posts

Shell script to backup all MySQL database

【转载】命令的小总结

MySQL Innodb备份

shell中的数组

一些shell技巧

一个小命令

awk同时操作两个文件

shell小技巧

Shell: 统计MySQL InnoDB表的大小

awk多维数组

1 Response

shitou

2009-05-07 09:03:53

http://blog.donews.com/xinbaojiang/archive/2004/07/29/53879.aspx

 

TOP

Tags

tenerer MooseFS gearman-ruby Gearman MongoDB MochiChat TCP U-ka saegusa IN db command Mai Kuraki Norah Jones log iPhoneException ACG Mac Safari objective-c CouchDB LVS AJAX debian 推荐 AMQP google mail bug gettext Erlang 北京 iptables 架构 tips mysql backup function 我看 postfix 监控 SEO cache Etag memcache thread 进程 线程 无锡 yield file column mixboy xml rss gems ruby shitou shell lighttpd 安全 csrf 公司 nginx linux 模块 apache webserver 朋友 大学 生活 尼古拉斯凯奇 movie 文件同步 笑笑 歌词 auto complete plugin rails music ubuntu blog

Category

  • iPhone[17]
  • Erlang[8]
  • google[9]
  • 生活[41]
  • 音乐[11]
  • 电影[11]
  • linux[24]
  • web server[6]
  • mail server[3]
  • cluster[1]
  • system manage[8]
  • ruby[18]
  • ruby on rails[27]
  • 开源[3]

Episode

  • MochiChat
  • iPhoneException
  • shell
  • thread
  • memcache

Recent Comments

  • mess assfilled, soderman http://gerero.centerbl...
  • croydon hoes, unlike http://zewero.centerblog.n...
  • Best Site good looking
  • Wonderfull great site
  • very best job
  • felony okcupid, bins http://biiili.centerblog.n...
  • passage mom tube, animosity http://zewero.cente...
  • this is be cool 8)
  • i'm fine good work
  • Good crew it's cool :)

Popular Posts

  • 准备开始学习Erlang了(恶狼, 二郎..)
  • MySQL Innodb备份
  • Lighttpd配置参数
  • iPhone上的HelloWorld终于跑起来了
  • Etag和Expire

Recommended Posts

  • 再次被和谐-_-
  • 十人族: 上线了
  • MooseFS vs. NFS
  • Mochichat新版本上线
  • Gearman
  • MongoDB入门
  • find使用非业余研究
  • MochiChat: 一个基于erlang的web聊天室(beta)
  • /dev/shm和swap的区别
  • gen_tcp的packet参数
  • Beauty - Mai Kuraki
  • awk多维数组
  • We Lost Google.cn
  • Erlang TCP Server例子
  • Mai Kuraki -永远より ながく

Friends' blogs

  • levy
  • sphance
  • andreas

Login

   注册

留言 查看留言

留言

   取消

留言 查看留言


Statistics

  • 访问次数: 88208
  • 今天访问: 4
  • 日志: 187
  • 评论: 516
  • 音乐: 9
  • 用户: 495


 

just DO NOT support IE

close