{{tag>shell bash bourne .sh shellscript}} siehe auch: [[bash]] ====== Bash Shell / Bourne Shell ====== [[shell:if|IF-Operator]] [[shell:in-out|Ein- und Ausgaben umleiten]] [[shell:shortcuts|Tastaturabkürzungen]] [[shell:input Password|Passworteingabe über die Shell]] [[shell:find|Text in einer Datei suchen]] [[shell:email|eMail per Shellscript verschicken]] [[shell:explode|String nach bestimmten Zeichen splitten/cutten /wie explode in PHP)]] [[http://tldp.org/LDP/abs/html/complexfunct.html|Complex Functions and Function Complexities]] A quick guide to writing scripts using the bash shell: [[http://pegasus.rutgers.edu/~elflord/unix/bash-tute.html]] Command Substitution: [[http://www.injunea.demon.co.uk/pages/page206.htm]] The Linux Terminal - a Beginners' Bash: [[http://linux.org.mt/article/terminal]] Bash Shell Programming in Linux: [[http://www.arachnoid.com/linux/shell_programming.html]] === bash shell script: === wichtig, dass am Anfang: #!/bin/bash Das ist wichtig, weil der User, sollte er eine andere Shell als Bash gewält haben, eine andere Syntax vorherrschen kann. Variablen: x="hallo" # wichtig: KEINE Leerzeichen bei dem '=' $1, $2 etc. 1., 2., etc Parameter beim Aufruf Um Variablen zu unterscheiden (z.B. /hallo/wer$binich/denn ist falsch, weil Interpreter nicht weiss, wo Variable endet). Richtig: /hallo/wer${bin}ich/denn Quoting: bei echo '$x' kommt raus: $x bei echo "$x" kommt raus: hallo " interpretiert Variablen, ' tut das nicht! (sondern 'wörtlich') parameter /variables substitution: http://www.unet.univie.ac.at/aix/aixuser/usrosdev/parameter_subst.htm#AC8A8CF676shar nette einfhrung: http://www.tu-berlin.de/zrz/information/paper/instant/sh/sh-03.html Werte eines Files in Veriablen einlesen Achtung: Dieses Skript liest wortweise ein (Leerzeichen getrennt) und ignoriert Leerzeichen/Leerzeilen #!/bin/sh ISOPATH=/data1/iso DESTINATION=/mnt/iso ls ${ISOPATH} > /tmp/isomount.tmp index=1 ISO="" for x in `cat /tmp/isomount.tmp` do ISO[index]="$x" index=`expr $index +1` done for y in `echo ${ISO[@]}` do mkdir -p ${DESTINATION}/y mount -o loop -t iso9660 ${ISOPATH}/y ${DESTINATION}/y done exit 0 Datei zeile für zeile lesen: script gut: [[http://steve-parker.org/sh/bourne.html]]