Sie sind auf Seite 1von 5

Home ReIerence AbouL Me ArcIIves

]ohns Blog
Bash Cheat Sheet
TIIs IIIe conLuIns sIorL LubIes oI commonIy used ILems In LIIs sIeII. n mosL
cuses LIe InIormuLIon uppIIes Lo boLI LIe Bourne sIeII (sI) und LIe newer busI
sIeII.
TesLs (Ior IIs und Ioops) ure done wILI | | or wILI LIe LesL commund.
Checking Iiles:
-r i1le #Check 1i i1le 1s readable.
-W i1le #Check 1i i1le 1s Wr1lable.
-x i1le #Check 1i We have execule access lo i1le.
-i i1le #Check 1i i1le 1s an ord1nary i1le {nol a d1reclory, a dev1ce i1le, elc.}
-s i1le #Check 1i i1le has s1ze realer lhan 0.
-d i1le #Check 1i i1le 1s a d1reclory.
-e i1le #Check 1i i1le ex1sls. Ts lrue even 1i i1le 1s a d1reclory.
ExumpIe:
1i | -s i1le ]
lhen
#such and such
i1
Checking strings:
s1 = s2 #Check 1i s1 equals s2.
s1 != s2 #Check 1i s1 1s nol equal lo s2.
-z s1 #Check 1i s1 has s1ze 0.
-n s1 #Check 1i s2 has nonzero s1ze.
s1 #Check 1i s1 1s nol lhe emply slr1n.
ExumpIe:
1i | $myvar = "hello" ] , lhen
echo "We have a malch"
i1
Checking nombers: NoLe LIuL u sIeII vurIubIe couId conLuIn u sLrIng LIuL
represenLs u number. I you wunL Lo cIeck LIe numerIcuI vuIue use one oI LIe
IoIIowIng:
n1 -eq n2 #Check lo see 1i n1 equals n2.
n1 -ne n2 #Check lo see 1i n1 1s nol equal lo n2.
n1 -ll n2 #Check lo see 1i n1 < n2.
n1 -le n2 #Check lo see 1i n1 <= n2.
n1 -l n2 #Check lo see 1i n1 > n2.
n1 -e n2 #Check lo see 1i n1 >= n2.
ExumpIe:
1i | $# -l 1 ]
lhen
echo "ERR0R. should have 0 or 1 command-l1ne paramelers"
i1
Johns Blog Bash Cheat Sheet http://www.johnstowers.co.nz/blog/pages/bash-cheat-shee...
1 of 5 11/05/2013 06:05 PM
Booleun operutors:
! #nol
-a #and
-o #or
ExumpIe:
1i | $num -ll 10 -o $num -l 100 ]
lhen
echo "Number $num 1s oul oi rane"
el1i | ! -W $i1lename ]
lhen
echo "Cannol Wr1le lo $i1lename"
i1
NoLe LIuL IIs cun be nesLed. or exumpIe:
1i | $myvar = "y" ]
lhen
echo "Enler counl oi number oi 1lems"
read num
1i | $num -le 0 ]
lhen
echo "Tnval1d counl oi $num Was 1ven"
else
#... do Whalever ...
i1
i1
TIe ubove exumpIe uIso IIIusLruLes LIe use oI reud Lo reud u sLrIng Irom LIe
keybourd und pIuce IL InLo u sIeII vurIubIe. AIso noLe LIuL mosL UNX communds
reLurn u Lrue (nonzero) or IuIse (o) In LIe sIeII vurIubIe sLuLus Lo IndIcuLe
wIeLIer LIey succeeded or noL. TIIs reLurn vuIue cun be cIecked. AL LIe
commund IIne ecIo $sLuLus. n u sIeII scrIpL use someLIIng IIke LIIs:
1i rep -q shell bshellrei
lhen
echo "lrue"
else
echo "ialse"
i1
NoLe LIuL -q Is LIe quIeL versIon oI grep. L jusL cIecks wIeLIer IL Is Lrue LIuL LIe
sLrIng sIeII occurs In LIe IIIe bsIeIIreI. L does noL prInL LIe muLcIIng IInes IIke
grep wouId oLIerwIse do.
I[O Redirection:
pm > i1le #0ulpul oi pm 1s red1recled lo i1le.
pm < i1le #Proram pm reads 1ls 1npul irom i1le.
pm >> i1le #0ulpul oi pm 1s appended lo i1le.
pm1 ] pm2 #0ulpul oi pm1 1s p1ped 1nlo pm2 as lhe 1npul lo pm2.
n > i1le #0ulpul irom slream W1lh descr1plor n red1recled lo i1le.
n >> i1le #0ulpul irom slream W1lh descr1plor n appended lo i1le.
n >& m #Mere oulpul irom slream n W1lh slream m.
n <& m #Mere 1npul irom slream n W1lh slream m.
<< la #Slandard 1npul comes irom here lhrouh nexl la al slarl oi l1ne.
NoLe LIuL IIIe descrIpLor o Is normuIIy sLundurd InpuL, 1 Is sLundurd ouLpuL, und
z Is sLundurd error ouLpuL.
Shell Boilt-in Vuriubles:
$0 #Name oi lh1s shell scr1pl 1lseli.
$1 #value oi i1rsl command l1ne parameler {s1m1larly $2, $3, elc}
$# #Tn a shell scr1pl, lhe number oi command l1ne paramelers.
$* #All oi lhe command l1ne paramelers.
$- #0pl1ons 1ven lo lhe shell.
Johns Blog Bash Cheat Sheet http://www.johnstowers.co.nz/blog/pages/bash-cheat-shee...
2 of 5 11/05/2013 06:05 PM
$? #Relurn lhe ex1l slalus oi lhe lasl command.
$$ #Process 1d oi scr1pl {really 1d oi lhe shell runn1n lhe scr1pl}
Puttern Mutching:
* #Malches 0 or more characlers.
? #Malches 1 characler.
|AaBbCc] #Example. malches any 1 char irom lhe l1sl.
|^R0B] #Example. malches any 1 char nol 1n lhe l1sl.
|a-] #Example. malches any 1 char irom lh1s rane.
Qooting:
\c #Take characler c l1lerally.
`cmd` #Run cmd and replace 1l 1n lhe l1ne oi code W1lh 1ls oulpul.
"Whalever" #Take Whalever l1lerally, ailer i1rsl 1nlerprel1n $, `...`, \
`Whalever` #Take Whalever absolulely l1lerally.
ExumpIe:
malch=`ls *.bak` #Puls names oi .bak i1les 1nlo shell var1able malch.
echo \* #Echos * lo screen, nol all i1lename as 1n. echo *
echo `$1$2hello` #Wr1les l1lerally $1$2hello on screen.
echo "$1$2hello" #Wr1les value oi paramelers 1 and 2 and slr1n hello.
Grooping: PurenLIeses muy be used Ior groupIng, buL musL be preceded by
bucksIusIes sInce purenLIeses normuIIy Iuve u dIIIerenL meunIng Lo LIe sIeII
(numeIy Lo run u commund or communds In u subsIeII). or exumpIe, you mIgIL
use:
1i lesl \{ -r $i1le1 -a -r $i1le2 \} -o \{ -r $1 -a -r $2 \}
lhen
#do Whalever
i1
Cuse stutement: Here Is un exumpIe LIuL Iooks Ior u muLcI wILI one oI LIe
cIurucLers u, b, c. I $1 IuIIs Lo muLcI LIese, IL uIwuys muLcIes LIe cuse. A cuse
sLuLemenL cun uIso use more udvunced puLLern muLcIIng.
case "$1" 1n
a} cmd1 ,,
b} cmd2 ,,
c} cmd3 ,,
*} cmd4 ,,
esac
Loops: BusI supporLs Ioops wrILLen In u number oI Iorms,
ior ar 1n |l1sl]
do
echo $ar
done
ior ar 1n |l1sl] , do
echo $ar
done
You cun suppIy |IIsL| dIrecLIy
NuMBERS="1 2 3"
ior number 1n `echo $NuMBERS`
do
echo $number
done
ior number 1n $NuMBERS
do
echo -n $number
Johns Blog Bash Cheat Sheet http://www.johnstowers.co.nz/blog/pages/bash-cheat-shee...
3 of 5 11/05/2013 06:05 PM
done
ior number 1n 1 2 3
do
echo -n $number
done
I |IIsL| Is u gIob puLLern LIen busI cun expund IL dIrecLIy, Ior exumpIe:
ior i1le 1n *.lar.z
do
lar -xzi $i1le
done
You cun uIso execuLe sLuLemenLs Ior |IIsL|, Ior exumpIe:
ior x 1n `ls -lr *.lo`
do
cal $x >> b1lo
done
Shell Arithmetic: n LIe orIgInuI Bourne sIeII urILImeLIc Is done usIng LIe
expr commund us In:
resull=`expr $1 + 2`
resull2=`expr $2 + $1 1 2`
resull=`expr $2 \* 5` #nole lhe \ on lhe * symbol
WILI busI, un expressIon Is normuIIy encIosed usIng | | und cun use LIe
IoIIowIng operuLors, In order oI precedence:
* 1 7 #{l1mes, d1v1de, rema1nder}
+ - #{add, sublracl}
< > <= >= #{lhe obv1ous compar1son operalors}
== != #{equal lo, nol equal lo}
&& #{lo1cal and}
]] #{lo1cal or}
= #{ass1nmenl}
ArILImeLIc Is done usIng Iong InLegers. ExumpIe:
resull=$|$1 + 3]
n LIIs exumpIe we Luke LIe vuIue oI LIe IIrsL purumeLer, udd , und pIuce LIe
sum InLo resuIL.
Order oI Interpretution: TIe busI sIeII currIes ouL ILs vurIous Lypes oI
InLerpreLuLIon Ior eucI IIne In LIe IoIIowIng order:
brace expans1on {see a reierence book}
~ expans1on {ior lo1n 1ds}
paramelers {such as $1}
var1ables {such as $var}
command subsl1lul1on {Example. malch=`rep 0NS *` }
ar1lhmel1c {irom leil lo r1hl}
Word spl1ll1n
palhname expans1on {us1n *, ?, and |abc] }
Other Shell Ieutores:
$var #value oi shell var1able var.
${var)abc #Example. value oi shell var1able var W1lh slr1n abc appended.
# #Al slarl oi l1ne, 1nd1cales a commenl.
var=value #Ass1n lhe slr1n value lo shell var1able var.
cmd1 && cmd2 #Run cmd1, lhen 1i cmd1 successiul run cmd2, olherW1se sk1p.
cmd1 ]] cmd2 #Run cmd1, lhen 1i cmd1 nol successiul run cmd2, olherW1se sk1p.
cmd1, cmd2 #0o cmd1 and lhen cmd2.
cmd1 & cmd2 #0o cmd1, slarl cmd2 W1lhoul Wa1l1n ior cmd1 lo i1n1sh.
Johns Blog Bash Cheat Sheet http://www.johnstowers.co.nz/blog/pages/bash-cheat-shee...
4 of 5 11/05/2013 06:05 PM
{cmds} #Run cmds {commands} 1n a subshell.
See u good reIerence book Ior InIormuLIon on Lrups, sIgnuIs, exporLIng oI
vurIubIes, IuncLIons, evuI, source, eLc.
See Also
UNX LIps: eurn 1o good UNX usuge IubILs.
TIe orIgInuI LIIs puge wus udupLed Irom.
Feed Wasp UAV Strawab GNOME
Johns Blog Bash Cheat Sheet http://www.johnstowers.co.nz/blog/pages/bash-cheat-shee...
5 of 5 11/05/2013 06:05 PM

Das könnte Ihnen auch gefallen