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

linux shell ±äÁ¿ºÍÔËËã·û<±äÁ¿Ïê½â>

·¢²¼Ê±¼ä:2006-05-17 08:50:05À´Ô´:ºìÁª×÷Õß:uu
×÷Õߣº·ã

µÚÒ»½Ú:±äÁ¿
´ó¸Ù:
2.1.1 ±¾µØ±äÁ¿
2.1.2 »·¾³±äÁ¿
2.1.3 ±äÁ¿Ìæ»»
2.1.4 λÖñäÁ¿
2.1.5 ±ê×¼shell±äÁ¿
2.1.6 ÌØÊâ±äÁ¿
2.1.7 Ó°Ïì±äÁ¿µÄÃüÁî
2.1.8 ÒýºÅ
2.1.9 ÔËËã·û
2.1.10 ±í´ïÊ½Ìæ»»
2.1.11 ÔËËã·ûµÄÓÅÏȼ¶
ÔÚ½øÐн²½âǰ,ÎÒÃÇÒªÖªµÀʲôÊÇshell±äÁ¿?
ÆäʵlinuxÏÂÃæµÄ±äÁ¿,linxϵÄshell±äÁ¿ºÍÆäËü¸ß¼¶ÓïÑÔÖе͍ÒåÊÇÒ»ÑùµÄ,¶¼ÊÇ·ÅÔÚÄÚ´æÖÐÒ»¶¨µÄ´æ´¢µ¥Ôª,¶øÕâ¸ö´æ´¢µ¥ÔªÀïÃæ´æ·ÅÕâ¸ö±äÁ¿µÄÖµ,¶øÕâ¸öÖµÊÇ¿ÉÒԸıäµÄ,ÎÒÃǾͳÆËüΪ±äÁ¿.
2.1.1 ±¾µØ±äÁ¿
¶¨Òå:ÊÇÔÚÓû§ÏÖÔÚµÄshellÉúÃüÆÚµÄ½Å±¾ÖÐʹÓÃ;
Àý:[redhat@server redhat]$name="Red Hat Linux" #°Ñ±äÁ¿ÉèÖÃΪRed Hat Linux
[redhat@server redhat]$echo ${name} or #ÏÔʾ±äÁ¿ÄÚÈÝ
=[redhat@server redhat]$echo $name #µÈͬÉÏÃæµÄÓïÒâ
Red Hat Linux #ÏÔʾÆäÉ趨ÄÚÈÝ,
[redhat@server redhat]$set | grep "name" #²é¿´¸Õ²ÅËùÉ趨µÄÄÚÈÝ,»ò²»¼Ó'grep "name"'²é¿´Óû§×Ô¼ºËùÓеı¾µØ±äÁ¿,
[redhat@server redhat]$readonly name #°ÑnameÕâ¸ö±äÁ¿ÉèÖÃΪֻ¶Á±äÁ¿,²»ÔÊÐíÔÙ´ÎÉèÖÃ,Õâ¿É²Î¿¼±äÁ¿¶¨Òå;-_-!
[redhat@server redhat]$name="He SenLin" #ÖØÐ¸³Öµ
bash:name:readonly variable #Ö»¶ÁÎļþϵͳ
[redhat@server redhat]$readonly #²é¿´ÏµÍ³´æÔÚµÄÖ»¶ÁÎļþ
¸½:ÖØÐµÇ¼һÏÂϵͳ,ÔÙ´ÎÓÃ
[redhat@server redhat]$echo ${name}
#±¾µØ±äÁ¿¾Í²»´æÔÚÁË,
˵Ã÷±¾µØ±äÁ¿Ö»ÄÜ´æ»îÔÚÓû§shellµÄÉúÃüÖÜÆÚÖÐ,ÖØµÇ¼¾Í²»ÔÚÁË,
2.1.2 »·¾³±äÁ¿
¶¨Òå:»·¾³±äÁ¿ÓÃÓÚËùÓÐÓû§½ø³Ì<ͨ³ÆÎª×Ó½ø³Ì>,°üÀ¨±à¼­Æ÷,½Å±¾ºÍÓ¦ÓÃ,µÇ¼½ø³ÌΪ¸¸½ø³Ì,shellÖÐÖ´ÐеÄÓû§½ø³Ì¾ùΪ×Ó½ø³Ì,²»Ïñ±¾µØ±äÁ¿Ö»ÓÃÓÚÏÖÔÚµÄshell.
´æÔÚĿ¼ÔÚËùÓÐÓû§µÄÖ÷Ŀ¼ÏÂ<¼´/home>/.bash_profile»ò
ÈçºÎÉèÖû·¾³±äÁ¿?µÚÒ»ÖÖ·½·¨¾ÍÊDZ༭ÉÏÃæµÄ¶þ¸öÎļþ,»¹¿ÉÒÔÓÃ"export"½øÐÐÉ趨»ò¸ü¸Ä;Õâ¿É²»Ïñ±¾µØ±äÁ¿Ö»Ðè name="Red Hat Linux"ÄÇÑù¼òµ¥,µ«È´¿ÉÒ԰ѱ¾µØ±äÁ¿¸ü¸ÄΪ»·¾³±äÁ¿;Ö»ÐëÔÚ±¾µØ±äÁ¿½áÊøºó,ÊäÈë:export <±äÁ¿Ãû>;Àý,ÎÒÃǰÑnameÓɱ¾µØ±äÁ¿ÐÞ¸ÄΪ»·¾³±äÁ¿,ÎÒÃÇ¿ÉÒÔÕâÑù×ö;
[root@server root]#name="Red Hat Linux" #±¾µØ±äÁ¿
[root@server root]#export name #±äÁ¿nameÓɱ¾µØÉýΪ»·¾³
µ±È»Ò²¿ÉÒÔÓÃÏÂÃæÕâÖÖ·½·¨;
[root@server root]#export name="Red Hat Linux" #Ö±½Ó¶¨ÒånameΪ»·¾³±äÁ¿;
¶¨Òåºó,¿Éͨ¹ýenv½øÐв鿴,²»ÖªµÀÉÏÃæµÄ±¾µØ»·¾³±äÁ¿ÓÉÄĸöÃüÁî½øÐв鿴Äã¼ÇסÁËûÓÐ?,ÑÝʾһϲ鿴ÏÖÔÚ¶¨ÒåµÄ»·¾³±äÁ¿;
[root@server root]#env | grep "name"
Red Hat Linux
ͬÑù²»¼ÓºóÃægrep "name",Õâ¸ö²ÎÊýÒ²ÊDz鿴ËùÓеĻ·¾³±äÁ¿;¸üͬÑùµÄÊÇÎÒÃÇÒ²¿ÉÒÔÔËÐÐreadonlyÕâ¸ö²ÎÊý¸ønameÒÔÖ»¶ÁÊôÐÔ;
Tips:»·¾³±äÁ¿¾ÍÊÇÈ«²¿°üº¬ÔÚ±¾µØ±äÁ¿ÖÐ<ÒòΪËü¼´¿ÉÔËÐÐÖи¸½ø³ÌÖÐÒ²¿ÉÔËÐÐÓÚ×Ó½ø³ÌÖÐ>,×¢ÒâÒ»µã,±¾µØ±äÁ¿²»ÄÜÔËÐÐÔÚÈ«²¿½ø³ÌÖÐ,Ö»Óл·¾³±äÁ¿¿ÉÒÔ,ÔÙ²»¶®¾ÍÁªÏëÒ»ÏÂÈËÓë×ÔÈ»°É;-_-!»¹ÊDz»»á?ÓþøÕÐ:
[root@server root]#you=myfriend #ÉèÖñ¾µØ±äÁ¿nameΪmyfriend
[root@server root]#echo ${you} #²é¿´Ò»ÏÂÊÇ·ñ³É¹¦
myfriend #³É¹¦
[root@server root]#sh #¸ü»»shell»·¾³µÈÍ¬ÖØµÇ¼,ÕâÏ൱һ¸ö
sh-2.05b#echo $you #Óû§×Ó½ø³Ì
#ûÏÔʾ,˵Ã÷²»´æÔÚ,ÕæµÄ²»´æÔÚ?
sh-2.05b#exit #·µ»Øbash»·¾³
[root@server root]#echo $you #Ôٴβ鿴;
myfriend #ÓÖ³öÀ´ÁË,Ôõô»ØÊÂ?
[root@server root]#export you #°Ñ±äÁ¿youÉèΪ»·¾³±äÁ¿;
[root@server root]#sh #ÔÙÊÔÒ»´Î;
sh-2.05b#echo $you
myfriend #ok,you see?
ÔÙ²»¶®,,Äã¾Í°ÑÎÒɱÁ˰É,,ʲô,Äã²»ÖªµÀÎÒסÔÚÄÄ?º¹-_-!
ÔÙ²¹³äÒ»µã,¾ÍÊÇÔÚsh½ø³ÌÖÐÉèÖû·¾³±äÁ¿ÊÇ¿ÉÒÔд»Øbash»·¾³ÖÐ,ÒòΪbashÊǸ¸½ø³Ì,Ö»ÓÐÀϵIJÅÓÐСµÄ,СµÄÔõô²ÅÄÜÓÐÀϵÄÁ¨?<³¤´óÁ˾ÍÓÐÀϵÄà¶,Ŷ,Ò²¶Ô!..ÂÒÓï>
2.1.3 ±äÁ¿Ìæ»»
¶¨Òå:ÓñäÁ¿µÄÖµÌæ»»ËüµÄÃû×Ö.
²é¿´·½Ê½:echo <ͨÓñ¾µØ,»·¾³...>
¿ÉÒÔÓÃechoÏÔʾ¿ÉÒÔµ¥¸ö±äÁ¿µÄȡֵ;
[root@server root]#str="this is example" #ÉèÖñ¾µØ±äÁ¿
[root@server root]#echo "can you see `echo $str`" #ÏÔʾ
cat you see this is example #Ìæ»»¾Íµ½ÕâÁË,²»Ã÷°×Ã÷ÔÙÀ´
±äÁ¿Ìæ»»Ðø
³ýÁËÉÏÃæµÄÕâ¸ö·½Ê½ÒÔÍ⻹ÓÐÎåÖÖŶ;±ð¼±,Ò»¸öÒ»¸öÀ´;-_-!<ÏÈ˵ºÃ,ż²»ÊÇÆ¤Ìõ>
¸ñʽ ¶¨Òå
${variable name} ÏÔʾʵ¼ÊÖµµ½variable name 1

${variable name :+value} Èç¹ûÉèÖÃÁËvariable name,¾Í°ÑvalueÏÔʾ,
δÉèÖÃÔòΪ¿Õ; 2
${variable name:-value} Èç¹ûÉèÖÃÁËvariable name,¾ÍÏÔʾËü,δÉèÖþÍÏÔʾ
value<½öÏÔ²»´æ±¾µØÖÐ>>; 3
${variable name:?value} δÉèÖÃÌáʾÓû§´íÎóÐÅÏ¢value; 4
${variable name:=value} ÈçδÉèÖþͰÑvalueÉèÖò¢ÏÔʾ<дÈë±¾µØÖÐ>, 5
±äÁ¿Çå³ý:
unset <±äÁ¿name>
[root@server root]#echo $name #±äÁ¿ nameÊÇ·ñ´æÔÚ?
Red Hat Linux #´æÔÚ
[root@server root]#unset name #Çå³ýname±äÁ¿
[root@server root]#echo $name #ÊÇ·ñ³É¹¦
#³É¹¦
×¢Òâ:Èç¹ûÓÃreadonlyÏÞÖÆÁËÖ»¶ÁÊôÐԾͻáʧ°Ü,»¹ÓÐÔõô´Ó»·¾³±äÁ¿ÖÐÈ¥µôÄǸö±äÁ¿ÄØ?»¹¼ÇµÄÓÃÄĸöÉ趨»·¾³±äÁ¿µÄÂð?¶Ô.export,Ö»ÐëÔÚËüºóÃæ¼Ó"-n"²ÎÊý¼´¿É
2.1.4 λÖñäÁ¿
¶¨Òå:λÖñäÁ¿±íʾ$0,$1,$2,....$9
$0 $1 $2 $3 $4
½Å±¾Ãû A B C D
Ïò½Å±¾ÖÐʹÓÃλÖòÎÊý;
ÏòϵͳÃüÁî´«µÝ²ÎÊý;
Àý:./test<ÔÚ³ÌÐòÖнøÐÐÌæ»»>
[root@server root]#vi /test #´´½¨²¢±à¼­/testÎļþ
#!/bin/bash
#test
echo "ÕâÊǽű¾µÄµÚÒ»¸öÃû³Æ: $0"
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: $1"
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: $2"
echo "ÕâÊǽű¾µÄµÚËĸöλÖòÎÊý: $3"
echo "ÕâÊǽű¾µÄµÚÎå¸öλÖòÎÊý: $4"
[root@server root]#chmod u+x ./test #¼ÓÖ´ÐÐȨÏÞ;
[root@server root]#./test A B C #¼Ó²ÎÊýÖ¤Ñé
echo "ÕâÊǽű¾µÄµÚÒ»¸öÃû³Æ: ./test
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: A
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: B
echo "ÕâÊǽű¾µÄµÚËĸöλÖòÎÊý: C
echo "ÕâÊǽű¾µÄµÚÎå¸öλÖòÎÊý:
<ÏòϵͳÃüÁîÖд«µÝλÖòÎÊý>
[root@server root]#vi test1.sh #н¨Ò»¸ö½Å±¾Îļþ
#!/bin/bash
#name:test1.sh
#to call: test1.sh 755 #ʹÓ÷½Ê½
find ~ -perm $1 -print
$2 #ϵͳÃüÁî
[root@server root]#chmod u+c test1.sh
[root@server root]#./test1.sh 755 date #λÖÃһΪ755,2λdate
/dev/ip
/dev/iput
.
.
.
Fri May 13 2:31:54 CST 2006

2.1.5 ±ê×¼±äÁ¿:
bashĬÈϽ¨Á¢Ò»Ð©»·¾³±äÁ¿¾ÍÊDZê×¼±äÁ¿,¿ÉÒÔͨË×µÄ˵¾ÍÊDz»ÊÇÄã¼ÓµÄ¶øÊÇ×°ºÃ»ú×Ó´øµÄÄÇЩ»·¾³±äÁ¿, ¿ÉÔÚ/etc/profileÖнøÐж¨Òå,
ÃüÁî ÒâÒå
HOME Óû§Ö÷Ŀ¼
IFS ĬÈÏ·Ö¸ô·û
MAIL ÓÊÏ䵨ַ
MAILCHECK ÓÊÏä¼ì²é¼ä¸ô
PWD Óû§µ±Ç°¹¤×÷Ŀ¼
LOGNAME µ±Ç°Óû§µÇ¼Ãû
2.1.6 ÌØÊâ±äÁ¿
ÃüÁî ÒâÒå
$# ´«µÝµ½½Å±¾µÄ²ÎÊýÁбí
$? ǰ¸öÃüÁîÖ´ÐÐÇé¿ö,0³É¹¦,ÆäËüֵʧ°Ü
$$ ½Å±¾ÔËÐеĵ±Ç°½ø³ÌºÅ
$! ÔËÐнű¾×îºóÒ»¸öÃüÁî
$* ÏÔʾ½Å±¾È«²¿²ÎÊý
2.1.7 Ó°Ïì±äÁ¿µÄÃüÁî
declare ÉèÖûòÏÔʾ±äÁ¿
-f Ö»ÏÔʾº¯ÊýÃû
-r ´´½¨Ö»¶Á±äÁ¿
-x ´´½¨×ª³ö±äÁ¿
-i ´´½¨ÕûÊý±äÁ¿
ʹÓÃ"+"´úÌæ"-",¿ÉÒԵߵ¹Ñ¡ÏîµÄÒâ˼,-r³ýÍâ,
export ÓÃÓÚ´«µÝ¸ø×ÓshellµÄ±äÁ¿
-- ±íÃ÷Ñ¡Ïî½áÊø,ËùÓкóÐø²ÎÊý¶¼ÊÇʵ²Î,
-f ±íÃ÷ÔÚ"Ãû-Öµ"¶ÔÖеÄÃû×ÖÊǺ¯ÊýÃû,
-n °ÑÈ«¾Ö±äÁ¿×ª»»³É¾Ö²¿±äÁ¿,»»¾ä»°¾ÍÊDz»ÔÙ´«¸øshell
-p ÏÔʾȫ¾Ö±äÁ¿Áбí,
shift
ÓÃÓÚÒÆ¶¯Î»ÖñäÁ¿,µ÷ÕûλÖñäÁ¿,ʹ$3µÄÖµ¸³¸ø$2.$2µÄÖµ¸³Óè$1.

[root@server root]#vi /test
#!/bin/bash
#test
echo "ÕâÊǽű¾µÄµÚÒ»¸öÃû³Æ: $0"
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: $1"
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: $2"
echo "ÕâÊǽű¾µÄµÚËĸöλÖòÎÊý: $3"
echo "ÕâÊǽű¾µÄµÚÎå¸öλÖòÎÊý: $4"
shift
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: $1"
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: $2"
[root@server root]#chmod u+x ./test
[root@server root]#./test A B C
echo "ÕâÊǽű¾µÄµÚÒ»¸öÃû³Æ: ./test
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: A
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: B
echo "ÕâÊǽű¾µÄµÚËĸöλÖòÎÊý: C
echo "ÕâÊǽű¾µÄµÚÎå¸öλÖòÎÊý: $4"
shit #ÏÔʾµÄʱºò²¢Ã»ÓÐ,¼ÓÔÚ´ËÖ»»áÃ÷ÁË
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: B
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: C
¸øshfit¼ÓÒ»¸öÊýÊÔÒ»ÏÂ:
[root@server root]#vi ./test
#!/bin/bash
#test
echo "ÕâÊǽű¾µÄµÚÒ»¸öÃû³Æ: $0"
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: $1"
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: $2"
echo "ÕâÊǽű¾µÄµÚËĸöλÖòÎÊý: $3"
echo "ÕâÊǽű¾µÄµÚÎå¸öλÖòÎÊý: $4"
shift 2
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: $1"
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: $2"
[root@server root]#./test A B C D
echo "ÕâÊǽű¾µÄµÚÒ»¸öÃû³Æ: ./test
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: A
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: B
echo "ÕâÊǽű¾µÄµÚËĸöλÖòÎÊý: C
echo "ÕâÊǽű¾µÄµÚÎå¸öλÖòÎÊý: D
shit 2 #ÏÔʾµÄʱºò²¢Ã»ÓÐ,¼ÓÔÚ´ËÖ»»áÃ÷ÁË
echo "ÕâÊǽű¾µÄµÚ¶þ¸öλÖòÎÊý: C
echo "ÕâÊǽű¾µÄµÚÈý¸öλÖòÎÊý: D

µÚ¶þ½Ú ÒýºÅ
2.1 ÒýºÅµÄ±ØÒªÐÔ
2.2 Ë«ÒýºÅÓÐʲô×÷ÓÃ
2.3 µ¥ÒýºÅµÄ×÷ÓÃ
2.4 ·´ÒýºÅµÄ×÷ÓÃ
2.5 ·´Ð±¸ÜµÄ×÷ÓÃ
2.1 ÒýºÅµÄ±ØÒªÐÔ?
±äÁ¿ºÍÌæ»»²Ù×÷,Ôڽű¾ÖÐÖ´ÐбäÁ¿Ì滻ʱ×îÈÝÒ×·¸µÄÒ»¸ö´íÎó¾ÍÊÇÒýÓôíÎó,Ϊʲô»á³öÏÖÕâÑùµÄ´íÎóÄØ,Õâ¾ÍÊÇÒòΪ¶ÔÉÏÃæÕâЩºÅ,¸ÜÔËÓõĴíÎó?ÄãÏë²»´íÂð?ÄǾÍfollow me°É!
2.2 ÕâÕ½ÚÎÒ²»¶à½²,Ö»¸øÒ»¸öÀý×Ó,²»¶®¿ÉÒÔÁªÏµÎÒ:hesenlin521@163.com
ÒÔÏÂÒýÓÃ"ÍøÖÐÈË<´óÏÀ>"µÄһƪÀý×Ó;
# TOPIC='Q & A'
# ÓÃ?Òý?±£ÁôÌØÊâ·û?ºÍ¿Õ°×

¡¡

# Q1=What\'s\ your\ \"topic\"\?

# echo $Q1
What's your "topic"?
¡¡

# Óà \ ?ÌØÊâ·û?(º¬Òý?)ºÍ¿Õ°×Ìø?³ö?

#

# Ìø?áá,ÌØÊâ·û?ºÍ¿Õ°×¶¼±£ÁôÏÂ?¡£

¡¡

# ANS="It is $TOPIC."

# echo $ANS
It is Q & A.
¡¡

# ÓÃ?Òý?±£Áô??Öµ($)

#

# ÓÃ?Òý?,?ʾ³ö??Öµ¡£

¡¡

# WRONG_ANS='It is "$TOPIC".'

# echo $WRONG_ANS
It is "$TOPIC".

¡¡
¡¡

# ÓÃ?Òý?±£ÁôÌØÊâ·û?ºÍ¿Õ°×(ͬµÚÒ»ÐÐ)

#
# ÓÃ?Òý?,È«²¿±£Áô;ͬ?:

# $ Ò²?³ÉÒ»°ã·û?±£Áô,¶ø·Ç??Öµ¡£

¡¡

# ALT_ANS='the $TOPIC'\ is\ "'$TOPIC'"\.

# echo $ALT_ANS
The $TOPIC is 'Q & A'.

¡¡
# ͬ?»ìºÏ?Òý???Òý??ºÍÌø?×Ö·û \

#

# ?Òý?±£ÁôÈ«²¿;?Òý?±£Áô??Öµ;
# \ ?ÌØÊâ·û?Ìø?³ö?¡£


ÔÚ´Ë,ÎÒ½²½âһϸ÷¸öÒýºÅµÄ×÷ÓðÉ;Ë«ÒýÖ÷ÒªÊÇתÒâ$,\,``<·´ÒýºÅ>Èý¸öÌØÊâ×Ö·ûµÄÒâÒå,ÆäËüµÄÈ«²¿µ±ÆÕͨ×Ö·û½øÐÐÏÔʾ,
µ¥ÒýºÅ,ÊǺÜÀä¿áµÄÄÇÖÖ,¾ÍÊǰÑËùÓеÄ×Ö·û¶¼µ±Ò»¸öÆÕͨ×Ö·ûÀ´ÏÔʾ,
[redhat@server redhat]$echo '$PWD,\n is your \n work directory'
$PWD,\n is your \n work directory
ÄǸö¸Ü¾ÍÊÇÆÁ±ÎÌØÊâ×Ö·ûµÄÌØÊ⺬Òå,Àý
[redhat@server redhat]$echo *
myfiel bash tehce desktop ....
[redhat@server redhat]$echo \*
*
ok,,¾Í½²Õâô¶àÁË,
µÚÈý½Ú ÔËËã·û
¹ËÃû˼Òå¾ÍÊǸæËß¼ÆËã»úÄÄЩÊýÖµÓ¦¸ÃÓÃÄÄÖÖÔËËã·û½øÐÐÔËËã,+,-,*,\,ͨ¹ý±í´ïʽ¶Ô±äÁ¿,Êý×Ö,×Ö·ûÓõÄÔËËãµÄ·ûºÅ¾Í½ÐÔËËã·û;
ͨ³£±í´ïʽ:ÊÇÔËËã·ûºÍÊý×Ö,±äÁ¿,×Ö·û¶ÔÏóµÄ¼¯ºÏÌå;
3.1 ÔËËã·ûÀàÐÍ;
°´Î»ÔËËã·û;ÔÚÆäËüÓïÑÔÖо­³£¼ûµ½Å¶,
~,<<,>>,|,^
$[]±íʾÐÎʽ¸æËßshellÇóÖÐÀ¨ºÅÖеıí´ïʽµÄÖµ;
$[ 2+8 ]
ÔËËã·û ˵Ã÷
~var ·´ÔËËã·û,°ÑvarÖÐËùÓеĶþ½øÖÆÎª1µÄ±äΪ0,Ϊ0µÄ±äΪ1
var< ³öµÄ¸÷λ,×îÓҶ˵ĸ÷λÉϲ¹ÉÏ0Öµ,ÿ×öÒ»´Î°´Î»×óÒÆ¾ÍÓÐʵ
var³Ë2;
var>>str ÓÒÒÆÔËËã·û,°ÑvarÖÐËùÓеĶþ½øÖÆÎ»ÏòÓÒÒÆ¶¯strλ,ºöÂÔ×îÓÒ
ÒÆ³öµÄ¸÷λ,×î×óµÄ¸÷λÉϲ¹0,ÿ´Î×öÒ»´ÎÓÒÒÆ¾ÍÓÐʵÏÖvar³ýÒÔ2,
var&str Óë±È½ÏÔËËã·û,varºÍstr¶ÔӦλ,¶ÔÓÚÿ¸ö¶þ½øÖÆÀ´
˵,Èç¹û¶þ¶¼Îª1,½á¹ûΪ1.·ñÔòΪ0;
var^str ÒìÓòÔËËã·û,±È½ÏvarºÍstr¶ÔӦλ,¶ÔÓÚ¶þ½øÖÆÀ´Ëµ
Èç¹û¶þÕß»¥²¹,½á¹ûΪ1,·ñÔòΪ0;
var | str »òÔËËã·û,±È½ÏvarºÍstrµÄ¶ÔӦλ,¶ÔÓÚÿ¸ö¶þ½øÖÆÀ´
˵,Èç¶þ¶¼¸ÃλÓÐÒ»¸ö1»ò¶¼ÊÇ1,½á¹ûΪ1,·ñÔòΪ0;
Âß¼­ÔËËã·û
&& 1 1²ÅΪ1
|| ÓÐÒ»¸ö1¼´Îª1
¸³ÖµÔËËã·û.+=,==,^=.|=
let count =$count +=$change
µÚÈý½Ú.±í´ïÊ½Ìæ»»
Ò²¾ÍÊǸղÅÓõÄ$[]µÈͬÓÚ$(())
ÔËËã·ûµÄÓÅÏȼ¶
¼¶±ð ÔËËã·û ˵Ã÷
1 =,+=,-=,/=,
%=,*=,&=,^=, ¸³ÖµÔËËã·û
|=,<<=,>>==
2 || Âß¼­»ò
3 && Âß¼­Óë
4 | °´Î»»ò
5 ^ °´ÒìλÓë
6 & °´Î»Óë
7 ==,!= µÈÓÚ/²»µÈÓÚ
8 <=,>=,<,> ´óÓÚ»òµÈÓÚ/СÓÚ»òµÈÓÚ/´óÓÚ/СÓÚ
9 <<,>> °´Î»×óÒÆ/°´Î»ÓÒÒÆ
10 +,- ¼Ó¼õ
11 *,/,% ³Ë,³ý,ȡģ
12 ! ,~ Âß¼­·Ç,°´Î»È¡·´»ò²¹Âë
13 -,+ Õý¸º
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 2 ÌõÆÀÂÛ

  1. cow0312 ÓÚ 2011-12-07 16:56:40·¢±í:

    ±äÁ¿Ìæ»»Ðø
    ³ýÁËÉÏÃæµÄÕâ¸ö·½Ê½ÒÔÍ⻹ÓÐÎåÖÖŶ;±ð¼±,Ò»¸öÒ»¸öÀ´;-_-!<ÏÈ˵ºÃ,ż²»ÊÇÆ¤Ìõ>
    ¸ñʽ ¶¨Òå
    ${variable name} ÏÔʾʵ¼ÊÖµµ½variable name 1

    ${variable name :+value} Èç¹ûÉèÖÃÁËvariable name,¾Í°ÑvalueÏÔʾ,
    δÉèÖÃÔòΪ¿Õ; 2
    ${variable name:-value} Èç¹ûÉèÖÃÁËvariable name,¾ÍÏÔʾËü,δÉèÖþÍÏÔʾ
    value<½öÏÔ²»´æ±¾µØÖÐ>>; 3
    ${variable name:?value} δÉèÖÃÌáʾÓû§´íÎóÐÅÏ¢value; 4
    ${variable name:=value} ÈçδÉèÖþͰÑvalueÉèÖò¢ÏÔʾ<дÈë±¾µØÖÐ>, 5

    ûÃ÷°×£¡

  2. cow0312 ÓÚ 2011-12-07 16:02:39·¢±í:

    ÄÄλ´ó¸çÓкõãµÄѧϰ·½·¨£¬¼Ç²»×¡°¡£¡