Archiv der Kategorie: Skizze

Kurze Wasserstandsmeldung aus dem Blog:

Seit Mai mache ich wieder sehr regelmäßig wöchentliche Zeichenmeetups, aber sonst komme ich kaum zum Zeichnen. Für das dröge Scannen, Verschlagworten und Veröffentlichen, behindert noch durch ein störriges WordPress, fehlt mir meisst die Muße. Gescannt habe ich das meiste schon.

fcd (fast-cd) Version 1.1

Bugfix/Update nach Hinweisen von m-bostaurus.

Beim Aufruf von fcd mit bin als Zielordner erlebte m-bostaurus, dass nur 1 Verzeichnis gefunden wurde. Meine erste Vermutung, es könne daran liegen, dass zu viele Treffer gefunden werden, und die Parameterliste zu lang ist, bewahrheitete sich zwar nicht, aber mit dem Umbau, der das Problem beheben sollte, war es behoben.

Ich verwende jetzt `mapfile`, um die Suchergebnisse in ein Array zu packen.

Hier der neue Code:

#!/bin/bash
#
# fcd.sh:
#
# Fast change directory. Should be sourced from ~/.bashrc file, since it is and
# needs to be a function.
#
#	Update Ver.1.1, 2021-03-03
#		Bugfix for missing results when fast changing to "bin", thanks to m_bostaurus.
#	Update Ver.1.0, 2021-02-07
#		changed from egrep to mapfile, see code. Handles blanks in paths now flawlessly.
#   Update Ver.0.9, 2013-08-21, comments, publication
#
#   Prototyp 2010
#
# This program depends on locate/updatedb, which aren't always installed/activated.
# If you use the shell on a regular basis, you should have them installed, though.
#
#	(c) GPLv3 (2010, 2021)
#
fcd ()
{
	suchdirname=$1
	# list=$(locate $1 | egrep "/$1$"); # Version 1
    # update 12.02.2021
    # mapfile -d '' list < <(locate -b -0 -r "$suchdirname$")
    # update 19.02.2021
    mapfile -d '' list < <(locate -b -0 -r "^$suchdirname$")
    # count=$(echo $list | wc -w );
    # update 19.02.2021
    count=${#list[@]}
    case $count in
        0)
            echo "unknown directory: "$1 && return
            # could search for partial matches Doc => Documentation
        ;;
        1)
            if [[ -d "${list[0]}" ]]; then
                echo "1) match: $list";
                cd "$list";
            else
                echo "not a directory: $1";
            fi
        ;;
        *)
            select directory in "${list[@]}" "/exit/";
            do
                if [[ "$directory" = "/exit/" ]]; then
                    break;
                fi;
                if [[ -d "$directory" ]]; then
                    echo "multi) $directory";
                    cd "$directory";
                    break;
                else
                    echo "not a directory: "$1;
                fi;
            done
        ;;
    esac
}

Der neue Code ist jetzt 2 Wochen bei mir im Einsatz, und funktioniert tadellos.

Wenn aber doch jmd. noch Fehler findet – immer her damit!

Unglaubliches ist mir passiert!

Das ist eine unfassbare Erfahrung!

Man kann gar nichts machen. Gut – ich hätte den Haushalt mal etwas aufräumen, saubermachen, Spül- und Waschmaschine machen können, aber wenn man sich nicht heroisch überwindet, sondern von äußeren Umständen bzw. O2 dazu gezwungen wird? Am Ende ist man noch dankbar dafür!

Zwischendurch hatte ich auch kurz die Idee, jmd. dann für ein ausführliches Telefonat anzuklingeln, aber das Festnetz war ja auch tot.

Dazu kam noch der Umstand, dass ich 2 Tage vorher noch den Grill angeschmissen hatte um die Putenkeulen garen zu lassen, während ich einkaufe. Als ich zurückkam ging das Licht nicht.

„Naja“, dachte ich, „die Energiesparlampe hat jetzt aber auch bestimmt über 10 Jahre durchgehalten!“. Als ich dann mit dem Küchenlicht hell im Flur machen wollte, um die Birne zu wechseln, merkte ich erst: Die Sicherung ist raus – es ist gar nicht die Lampe. Naja, und wenig später die Erkenntnis, dass es wohl der Grill war. Der hat eine große und eine kleine Heizspirale und 4 Stufen: kleine, große oder beide an – oder alles aus. Aber die kleine Schleife geht noch, so wurde die Pute noch fertig.

Aber die Sicherungen sind so alter Keramikpatronen mit Metallhütchen, die abfallen, und dreht man eine neue Sicherung rein – kein neumodischer Kippschalter, wie man sie seit den 70ern hat – brazzeln alle Geräte, weil sie kurz Strom haben, wieder nicht, wieder Strom, wieder nicht.

Ein Gerät, dass die Zustandswechsel gar nicht mochte, war der Router. Zigmal musste ich den aus- und wieder anstellen, Telefonkabel ziehen, wieder rein, bis es nach 30 Minuten endlich wieder klappte, und das Telefon war solange auch tot.

Das war vorletzten Sa., und Montag, gegen 10, als dann Internet wieder weg war, hielt ich das für eine Langzeitfolge und für mein persönliches Problem, bis ich dann doch die Hotline anrief, die mir verriet, in meinem Vorwahlgebiet gäbe es generelle Schwierigkeiten.

Di. gegen 10:00 kam es stotternd wieder, im Nachmittag dann wieder stabil. Ohne Covid kann man in so Fällen in die Bücherei und mit dem Laptop da ins WLAN, oder in ein Cafe mit Internet, aber Quarantäne ohne Ineternet ist schon krass.

Schon 8 Jahre nach der Erstveröffentlichung gibt es eine neue Version von fcd, dem schnellen Verzeichniswechsler für die Shell.

(Anm.: Mithilfe der Kommentare habe ich einen Bug gefunden, und in den Kommentaren wird auch erklärt, wie man ihn beseitigt. Ein Update des Artikels folgt daher in Kürze).

Die neue Version kommt mit Leerzeichen in Verzeichnisnamen zurecht – eine Funktion, die ich nicht direkt selbst brauche, da ich keine Verzeichnisse mit Leerzeichen mache, aber immer mehr Programme legen solche Verzeichnisnamen an (z.B. ‚VirtualBox VMs‘, Zoom: ‚Unknown Organization‘, …) und diese tauchen störend in den Auswahllisten auf.

Der Fix war überraschend einfach, nachdem ich mich erst mal zu der v.a. kosmetisch gedachten Verbesserung aufgerafft hatte.

Weiterlesen