{{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]]