ºìÁªLinuxÃÅ»§
Linux°ïÖú

bashÖеÄÌõ¼þ²âÊÔÓï¾ä

·¢²¼Ê±¼ä:2011-08-02 16:22:08À´Ô´:ºìÁª×÷Õß:yanyongkg
[i=s] ±¾Ìû×îºóÓÉ yanyongkg ÓÚ 2011-8-13 18:09 ±à¼­ [/i]

±È½Ï×Ö´®£º[ "string1" = "string2" ] µÈ¼ÛÓÚ [ "string1" == "string2" ]

±È½ÏÕûÊý£º[ "num1" -eq "num2" ] µÈ¼ÛÓÚ (( "num1" == "num2" ))

±äÁ¿Öµ²»Îª¿Õ£¬ÇÒ±äÁ¿ÖµÖв»°üº¬¿Õ¸ñµÄÇé¿öÏ£¬±äÁ¿¿É²»¼ÓË«ÒýºÅ£¬µ±È»¼ÓÁËË«ÒýºÅÒ²¿ÉÒÔ
±äÁ¿ÖµÎª¿Õ»ò±äÁ¿ÖµÖаüº¬¿Õ¸ñµÄÇé¿öÏ£¬±äÁ¿Ò»¶¨Òª¼ÓË«ÒýºÅ
»ò±äÁ¿Ã»ÓÐÉêÃ÷£¬±ÈÈçunset var£¬ÒýÓÃ$var£¬¾ÍÒ»¶¨Òª¼ÓË«ÒýºÅ
ËùÒ԰ѱäÁ¿Í³Ò»¼ÓÉÏË«ÒýºÅÊǸöÃ÷ÖǵÄÑ¡Ôñ


[ <...> -a <...> ] µÈ¼ÛÓÚ [ <...> ] && [ <...> ] µÈ¼ÛÓÚ [[ <...> && <...> ]]
[ <...> -o <...> ] µÈ¼ÛÓÚ [ <...> ] || [ <...> ] µÈ¼ÛÓÚ [[ <...> || <...> ]]


¹ØÓÚ[]ÖеÄ= == ºÅÁ½±ßÒ»¶¨ÒªÁô¿Õ¸ñµÄÔ­Òò£¬ÓÃÏÂÀýÀ´ËµÃ÷£º
#[ a=b ] && echo OK
OK
ß×£¬ÎªÊ²Ã´»á´òÓ¡³öOK£¿bash»á°Ña=bÀí½â¸³Öµ²Ù×÷£¬¸³Öµ²Ù×÷ÓÀÔ¶ÎªÕæ
#[ a==b ] && OK
OK
ͬÀía==b¿ÉÒÔÀí½âΪa="=b"¸³Öµ²Ù×÷



Àý×ÓϵÁÐ1(ÒÔϼ¸ÖÖtestÓï¾ä±í´ï·½Ê½¶¼ÊÇÕýÈ·µÄ)£º
var=3
[ "$var" -eq "3" ]
(( "$var" == "3" ))
[ "$var" -eq 3 ]
[ $var -eq 3 ]
[ "$var" = "3" ] °ÑÕûÊývarµ±×÷×Ö´®À´±È½ÏÒ²ÊÇ¿ÉÒÔµÄ
[ "$var" == "3" ] °ÑÕûÊývarµ±×÷×Ö´®À´±È½ÏÒ²ÊÇ¿ÉÒÔµÄ
[ $var = 3 ]
[ "$var" = 3 ]
[ $var = "3" ]

Àý×ÓϵÁÐ2£¨±äÁ¿Îª¿ÕÖµ£©£º
ÉèÖÿÕÖµµÄ±äÁ¿$varµÄÈýÖÖ·½·¨
var= ÊäÈëvar=ºóÖ±½Ó»Ø³µµ±È»=ºóÃæ½Ó¶à¼¸¸ö¿Õ¸ñÔٻسµµÄ»°£¬ÔÚÖ´ÐÐʱbash¶¼»Ø×Ô¶¯ºöÂÔµô¿Õ¸ñ
var='' Á½¸öµ¥ÒýºÅ
var="" »òÕßÁ½¸öË«ÒýºÅ[code][root@localhost ~]# var=
[root@localhost ~]# [ $var = 1 ] && echo OK
-bash: [: =: unary operator expected
[root@localhost ~]# [ $var' '=' '1 ] && echo OK #Ìáʾ=ºÅÁ½¹ýÒª¿Õ¸ñ£¬ÓÃÒýºÅ¼ÓÈë¿Õ¸ñ
OK #ÏÔÈ»$var²»¼ÓË«ÒýºÅ£¬½á¹ûÊÇ´íÎóµÄ
[root@localhost ~]# [ "$var" = 1 ] && echo OK
[root@localhost ~]# [ "$var" = "1" ] && echo OK
[root@localhost ~]# [/code]unset var
²»ÉêÃ÷$var£¬$varÒ²³Æ×÷ÆäֵΪ¿Õ£¿Õâ¸öÎÒÒ²ÓÐЩ¾À½á£¬ÈçÏ£º
#unset var
#var2=
#[ "var" = "var2" ] && echo OK
OK
¿´ÕâÀïÓеãÐ¡Çø±ðµÄ[code][root@localhost ~]# var=
[root@localhost ~]# set |grep var
MAIL=/var/spool/mail/root
var=
[root@localhost ~]# unset var
[root@localhost ~]# set |grep var
MAIL=/var/spool/mail/root
_=var
[root@localhost ~]# set |grep var
MAIL=/var/spool/mail/root
[root@localhost ~]# [/code]ÒýÉê֪ʶbashÖбäÁ¿$_±íʾÉÏÒ»ÌõÃüÁîµÄ×îºóÒ»¸ö²ÎÊý
#ls aa bb cc
#echo $_
cc


Àý×ÓϵÁÐ3£¨[ -n "$var" ]ÒÔ¼°[ -z "$var" ]£©£º[code][root@localhost ~]# var=
[root@localhost ~]# [ -n $var ] && echo OK
OK #ÏÔÈ»Õâ¸ö½á¹ûÊÇ´íµÄ
[root@localhost ~]# [ -n "$var" ] && echo OK
[root@localhost ~]# [/code][ -n $var ]Ϊʲôֵ±»bashÈÏΪÊÇÕæÁËÄØ£¿
[ -n $var ]ÊÇÏȽøÐÐÁË$var±äÁ¿Ìæ»»ºóÔÙ½øÐÐtest²âÊÔ£¬±äÁ¿Ìæ»»ºóÒ²¾Í±ä³ÉÁË[ -n ]£¬ÕâÊǸö¿ÕÅжϣ¬ÎªÕæ
¶ø[ -n "$var" ]±äÁ¿Ìæ»»ºó±ä³É[ -n "" ]£¬ÏÔȻΪ¼Ù

×¢Òâ[ -n "" ]Óë[ -n " " ]ÊDz»Ò»ÑùµÄ£¬[ -n " " ]ÎªÕæ£¬" "ÊÇÒ»¸ö¿Õ¸ñ£¬ËüÓë¿ÕÖµ²»Ò»Ñù

[ -z "$var" ]ͬÀí[code][root@localhost ~]# var=
[root@localhost ~]# [ -n ] && echo OK
OK
[root@localhost ~]# [ -n "" ] && echo OK
[root@localhost ~]# [ -n " " ] && echo OK
OK
[root@localhost ~]# [ -n ' ' ] && echo OK
OK
[root@localhost ~]# [ -n '' ] && echo OK
[root@localhost ~]# [/code]
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 3 ÌõÆÀÂÛ

  1. lzky2009 ÓÚ 2011-12-06 10:52:18·¢±í:

    Óá°==¡±À´ÅжÏstringÖ®¼äÊÇ·ñÏàµÈÃ²ËÆ²»¿ÉÒÔ£¬Ö»ÄÜÓÃ=

  2. yanyongkg ÓÚ 2011-08-03 00:38:22·¢±í:

    [[ ]]ÖÐÒ²Ö§³ÖСÓÚСÓÚ·ûºÅ> <µÄ
    Àý×Ó£º
    #[[ 3 > 2 ]] && echo OK
    OK
    ÖµµÃ×¢ÒâµÄÊÇÕâÀï3ºÍ2Êǵ±×÷×Ö·ûµÄ£¬±È½ÏËüÃǵÄasciiÂëÖµµÄ´óСµÄ£¬ÈçÏÂÀý
    #[[ A < B ]] && echo OK
    OK

    ÀûÓÃprintf¿ÉÒÔ²éÒ»¸ö×Ö·ûµÄasciiÂëÖµ[code][root@localhost c]# printf '%d\n' \'3
    51
    [root@localhost c]# printf '%d\n' '"2'
    50
    [root@localhost c]# printf '%d\n' "'A'"
    65
    [root@localhost c]# printf '%d\n' "'B"
    66[/code]

  3. roina ÓÚ 2011-08-02 21:15:43·¢±í:

    ÓÐЩÉî¶È°¡