• Re: OT - Wie bekomme ich den Hund in eine bash?

    From Ulf Volmer@21:1/5 to All on Sat Feb 3 10:50:01 2024
    Am 03.02.24 um 01:57 schrieb Florian (flobee):
    Hallo

    Sry für die vll. komische Betreffzeile aber die Suchmaschine findet zu
    viel und zu wenig Antworten:

    __ _,--="=--,_ __
    / \." .-. "./ !\
    \ `| \O/ :_: \O/ |\__/
    `-'| :="~` _ `~"=: |
    .---{ }--| /,.-'-.,\ |--{ }---.
    ) (_)_)_) \_/`~-===-~`\_/ (_(_(_) (

    Ein aus figlet und/oder boxes kopierter String liegt in einem shell
    script, bash, vor.

    Diesen string möchte ich zu gegebener Zeit hier oder dort ausgeben. (interaktives script)
    Nur die bash und das script stehen zu Verfügung.

    Ich bekomme es nicht hin, diesen String in eine Variable zu packen, um
    via echo $hund eine passende Ausgabe zu haben. Ein 'Banner', der
    gezeigt werden will.

    Spricht irgendwas gegen

    echo "$(~/a.sh)"

    Oder, wenn Du zwingend eine Variable haben möchtest:

    a="$(~/a.sh)"

    ?

    Viele Grüße
    Ulf

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ulf Volmer@21:1/5 to All on Sat Feb 3 22:10:03 2024
    Am 03.02.24 um 20:31 schrieb Florian (flobee):

    Dann brauche ich eine extra Datei. Genau das kann andere Probleme
    machen und sollte möglichst _nicht_ so sein.

    Wenn Du ohne eine separate Datei auskommen willst, warst Du schon auf
    dem richtigen Weg.

    Hier tut:

    A="$(cat << "LALA"
    __ _,--="=--,_ __
    / \." .-. "./ \
    / ,/ _ : : _ \/` \
    \ `| /o\ :_: /o\ |\__/
    `-'| :="~` _ `~"=: |
    \` (_) `/
    .-"-. \ | / .-"-.
    .---{ }--| /,.-'-.,\ |--{ }---.
    ) (_)_)_) \_/`~-===-~`\_/ (_(_(_) (
    LALA
    )"
    echo "$A"

    Viele Grüße
    Ulf

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ulf Volmer@21:1/5 to All on Sat Feb 3 21:30:01 2024
    Am 03.02.24 um 20:31 schrieb Florian (flobee):
    Am Sa., 3. Feb. 2024 um 10:47 Uhr schrieb Ulf Volmer <u.volmer@u-v.de>:
    Spricht irgendwas gegen

    echo "$(~/a.sh)"

    Oder, wenn Du zwingend eine Variable haben möchtest:

    a="$(~/a.sh)"

    Dann brauche ich eine extra Datei. Genau das kann andere Probleme
    machen und sollte möglichst _nicht_ so sein.

    Hach.

    [ulf@p330 ~](0/0)$ cat ./b.sh
    A="
    __ __ __
    _____/ /___ __ ______/ / __ __ _ __ ____/ /__
    / ___/ / __ \/ / / / __ / / / / /____| | / // __ / _ \
    / /__/ / /_/ / /_/ / /_/ /_/ /_/ /_____/ |/ // /_/ / __/ \___/_/\____/\__,_/\__,_/(_)__,_/ |___(_)__,_/\___/
    "

    echo "$A"

    Viele Grüße
    Ulf

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Christian Brabandt@21:1/5 to All on Sun Feb 4 18:10:02 2024
    Florian (flobee) schrieb am Samstag, den 03. Februar 2024:

    eg (funktioniert aber es sollte alles in eine Datei):
    # cat >$TMPFILE <<'LONGSTRING'
    ... special chars
    LONGSTRING

    A="$(cat <<'EOF'
    __ _,--="=--,_ __
    / \." .-. "./ \
    / ,/ _ : : _ \/` \
    \ `| /o\ :_: /o\ |\__/
    `-'| :="~` _ `~"=: |
    \` (_) `/
    .-"-. \ | / .-"-.
    .---{ }--| /,.-'-.,\ |--{ }---.
    ) (_)_)_) \_/`~-===-~`\_/ (_(_(_) (
    EOF
    )"

    printf "%s\n" "$A"

    Sollte tun.


    In Anlage ein Beispiel.
    Muss ich wirklich alle Zeichen suchen und escapen? Geht das nicht einfacher? :-)
    boxes oder figlet sind auf dem Zielsystem nicht verfügbar und lassen
    weniger Individualisierungen ermöglichen.

    read sollte auch gehen, dann musst du aber dafür sorgen, dass
    word-splitting und backslash escapes nicht durchgeführt werden.

    IFS= read -r -d '' BANNER <<'LONGSTRING'
    [...]
    LONGSTRING


    Viele Grüße
    Christian
    --
    *Optische Täuschungen II*

    Welches Dreieck ist am dreieckigsten?

    a) ein Dreieck c) ein Dreieck mit den Winkeln 60-55-65=180
    b) ein anderes Dreieck d) ein Dreieck mit den Maßen 90-60-90

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)