LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 745|回复: 1

请教一个shell编程的问题

[复制链接]
发表于 2003-10-14 21:37:28 | 显示全部楼层 |阅读模式
我的代码是:
[ -d $1 ]&&(echo "this is a directory" ;exit 0)
echo "this is not a directory"
exit 1
当[ -d $1 ]为真时,应该执行后面括号里的代码,但实际上exit 0并未执行.()里面的命令不是作为一个整体的吗?
当然这个程序很好改,只需写成
[ -d $1 ]&&echo "this is a directory"&&exit 0即可,可我想弄明白不能写成括号的原因,请大侠赐教.
发表于 2003-10-15 00:19:33 | 显示全部楼层
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=28945

   用小括号将一组命令括起来,则这些命令会由子shell来完成;而{command_list;}则在

   前shell中执行。这两者的主要区别在于其对shell变量的影响,子shell执行的命令不会
   影响当前shell中的变量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表