当前位置: 代码迷 >> AIX >> test命令的一点疑问解决思路
  详细解决方案

test命令的一点疑问解决思路

热度:7994   发布时间:2013-02-26 00:00:00.0
test命令的一点疑问
test命令还有其他两种形式,分别是[ expression ] 和 [[ expression ]],我遇到问题是:

$ls myshell
ksh93.s multiply.s (为了说明myshell是非空的)

然后,下面是判断一个目录是否为空

$[[ "myshell/*" = myshell/* ]] && echo "myshell is empty"
myshell is empty (这是输出结果)


$[ "myshell/*" = myshell/* ] || echo "myshell is not empty"
myshell is not empty (这也是输出结果)


正常情况下,上面那个test命令应该没有输出结果,因为myshell是非空的。为什么这两个相同用法会有不同的输出的结果啊

这是为什么呀,为什么。求大神们指点。


------解决方案--------------------------------------------------------
[是test
[[是keyword

test==[ ,[!=[[
------解决方案--------------------------------------------------------
在[[ ]]中,*是模式的一部分,不进行扩展,所以"myshell/*" = myshell/* 总是相等的
  相关解决方案