[[ ]] 与[ ]有什么区别?

sh/bash/dash/ksh/zsh等Shell脚本
回复
bt78
帖子: 24
注册时间: 2010-08-22 23:55

[[ ]] 与[ ]有什么区别?

#1

帖子 bt78 » 2010-09-14 22:39

请问下,当我这样定义变量的时候:
a1=asd
q1=qq
if [[ $a1 < $q1 ]];then
echo "yes"
else
echo "no"
fi
然后执行脚本得到的结果是no
然而当我这样写的时候,if [ $a1 < $q1 ],然后就报错,不知道这是为什么?请帮帮忙
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: [[ ]] 与[ ]有什么区别?

#2

帖子 cnkilior » 2010-09-14 22:47

[是标准
[[是bash扩展
bt78
帖子: 24
注册时间: 2010-08-22 23:55

Re: [[ ]] 与[ ]有什么区别?

#3

帖子 bt78 » 2010-09-14 22:50

那刚刚得到的结果为什么会不同呢?
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: [[ ]] 与[ ]有什么区别?

#4

帖子 aerofox » 2010-09-14 22:55

因为 [ 不支持 < 操作。
头像
adam8157
帖子: 2794
注册时间: 2009-03-05 16:31
联系:

Re: [[ ]] 与[ ]有什么区别?

#5

帖子 adam8157 » 2010-09-14 23:11

cnkilior 写了:[是标准
[[是bash扩展
[[始于一个很老的ksh, 一般都支持
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: [[ ]] 与[ ]有什么区别?

#6

帖子 tusooa » 2010-09-15 21:49

代码: 全选

tlcr: 0 庚寅年八月初八日 21:44:43 ~/应用/补丁
● which '['
[: shell built-in command
tlcr: 0 庚寅年八月初八日 21:44:49 ~/应用/补丁
● which '[['
[[: shell reserved word
tlcr: 0 庚寅年八月初八日 21:44:52 ~/应用/补丁
● 
记得以前是有一个帖子,讨论这个的。

代码: 全选

] ls -ld //
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: [[ ]] 与[ ]有什么区别?

#7

帖子 fanhe » 2010-09-16 3:21

[[ 符合c习惯
个人倾向于用[[
maozhx
帖子: 14
注册时间: 2009-09-19 18:17

Re: [[ ]] 与[ ]有什么区别?

#8

帖子 maozhx » 2010-09-18 11:54

大于号和小于号需要转义
回复