LinuxSir.cn,穿越时空的Linuxsir!

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

关于bash中的if

[复制链接]
发表于 2004-8-12 22:30:54 | 显示全部楼层 |阅读模式
一、
在:
GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu)
Copyright (C) 2002 Free Software Foundation, Inc.
中,
使用下面两个判断有何不同?

  1. 1)
  2. if [ -f myfile ]
  3. then echo myfile exist
  4. fi

  5. 2)
  6. if [[ -f myfile ]]
  7. then echo myfile exist
  8. fi
复制代码


二、
bash -v这个命令是干吗的?

三、
:thank
发表于 2004-8-12 23:20:07 | 显示全部楼层
1,简单的说,[[是[的"增强版",,在[]中,不允许有通配符扩展,而在[[]]里,支持通配符扩展!例如:
/home/lee#a=123123
/home/lee#[[ $a == [0-9]* ]]
/home/lee#echo $?
0
/home/lee#[ $a == [0-9]* ]
/home/lee#echo $?
1
对于文件的判断,像你所说的-f,他们都是基本相同的!推荐使用[[]],
2,bash -v
-v选项,用于在作任何分析,变量替换或者执行其他的操作前,显示一个脚本文件或者标准输入的各行,把输出写到标准出错输出,
常用来和-x结合用于脚本调试,更权威的解释,见bash manpage
3,Not at all ;)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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