Moin, On Mit, 16 Apr 2003 at 06:08 (+0200), David Haller wrote:
On Tue, 15 Apr 2003, Jan Trippler wrote: [...]
if test -d "$file"; then echo "Verzeichnisse können nicht nach $trash verschoben werden" continue
¿Por qué?
In dieser Variante war die Struktur in trash flach (Dateien werden da ja auch nicht mit ihren Pfaden gesichert), also fand ich es designmäßig ;-) daneben, Verzeichnisse mit reinzunehmen. [...]
if mv -i "$file" "$new" ## ich will immer noch auf der sicheren Seite ## sein, falls es zu einer Namenskollision kommt
Wenn Du meinst ;-) Ist natürlich sicherer, wenn z. B. mehrere Scripts gleichzeitig ins gleiche trash brezeln.
Ich hasse diese hirnrissige:
befehl if befehl_der_prueft_ob_befehl_ok; then ...
Ja ja, ich habe es einfach nur übernommen ;-) [...]
Fazit: $? ist in allen Faellen ueberfluessig, in denen man den Exit-status _nicht_ explizit einer benamsten Variablen zuweist oder z.B. mittels echo ausgibt.
Folgendes illustriert diese beiten Ausnahmen, in denen $? sinnvoll ist:
==== befehl befehl_status="$?" case $befehl_status in 1) ...;; 2) ...;; *) ...;; esac exit $befehl_status ====
Sinnvoll kann diese Zuweisung auch in folgendem Fall sein: for x in ir gend ei ne Sa mml ung; do tue_was_mit $x rc=$? raeume_auf_mit $x test $x -ne 0 && break done [...]
Jetzt kann höchstens noch die while-Schleife bis zum MAXINT laufen und dann das Script abbrechen, aber wenn dieser Fall eintritt, läuft eh was schief ;-)
Ajup. s.o.
Gibst Du immer so schnell auf? *g* [...]
cnt=1 for file in "$@" do if test -d "$file"; then newfn= newdn="$file" else newfn="`basename \"$file\"`" newdn="`dirname \"$file\"`" fi newdn="$trash`(cd \"$newdn\"; pwd)`"
*huch*[tm]. Da fehlt noch die Fehlerbehandlung, falls das cd fehlschlaegt... Und wozu die subshell?
Die Subshell ist doppelt gemoppelt, stimmt.
newdn="${trash}/`cd \"$newdn\" || exit -1; pwd -P`"
newdn="$trash`cd \"$newdn\" && pwd`" test "$newdn" = "$trash" && continue
Was hast du eigentlich gegen $(( ))?
Tradition ;-) Und wie wir mal vor ein paar Wochen gesehen haben, sind `` und $() eben doch nicht 100% gleich (wenn Du Dich nicht erinnern kannst, suche ich den Thread noch mal raus). `` funktioniert IMHO öfter als $().
Apropos shells: ich verwende das Teil auch viel zu selten, aber... [...] Allerdings ist die perlsh (ich hab' hier aber noch die vom 27.1.00) in Teilen noch recht unfertig und "alpha" oder so, und ob die noch ueberhaupt noch weiterentwickelt wird weiss ich auch nicht.
Fuer Perlianer ist perlsh aber ein nettes Spielzeug statt 'perl -e' ;)
Dann nehme ich aber lieber gleich perl. Immer schön trennen zwischen Perl und 'ner Shell - wo bleibt denn sonst der Spaß? [...]
PS: Jan, solle' mer mal unsere "fiesen" Dateinamen sammeln und als tarball wo ablegen?
Jut, könn' wa machn. Gehn wir zu Dir oder zu mir? :-) Ich baue gerade eine kleine Seite auf, wo das gut reinpassen tun täte. Jan