Hallo, Am Mit, 21 Nov 2007, Steffen Dettmer schrieb: [..] Schöne Zusammenfassung soweit :) Eines solltest du dir aber noch angewöhnen: Variablen IMMER "so viel wie möglich" zu quoten. Und nicht so wenig wie möglich. Also wenn du z.B.: echo "${arr[@]}" schreiben kannst, dann verwende die "" um die Variablen. Und wenn du '' statt "" verwenden kannst, dann nimm die ''. Das macht das Leben als Shellprogrammierer einfacher. Aufpassen muß man auch mit '' und "" noch genug.
steffen@link:~> p=$( echo hallo ) ; q=H${p:1:3}O ; echo $p - $q hallo - HallO
(weiss jemand, ob das wirklich ohne fork() gemacht wird? müsste eigentlich, oder?)
Im Zweifelsfall mal 'strace -f -eprocess' drauf ansetzen:
steffen@link:~> echo $( echo "start in $(pwd)"; ( cd /tmp && pwd ); echo "back in $(pwd)" ) start in /home/steffen /tmp back in /home/steffen
strace -f -eprocess bash -c '\ echo $( echo "start in $(pwd)"; ( cd /tmp && pwd ); echo "back in $(pwd)" )' Ja, die bash forkt hier. u.a. wg. der subshell für die (). Vgl. z.B.: strace -f -eprocess bash -c '\ echo "start in $(pwd)"; { cd /tmp && pwd; }; echo "back in $(pwd)"' -- 281: Personal Firewall Warum installieren Sie sich ein Programm, mit dessen Ausgaben Sie dann nichts anzufangen wissen? (T-Online-Team) -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org