staging.inyokaproject.org

Bash cowsay chat

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

Derek_Panther

Anmeldungsdatum:
10. September 2019

Beiträge: Zähle...

Hallo, ich haben ein Problem in Bash. Hintergrund: Ich will mit Cowsay einen Chat erstellen, jedoch muss dafür die Kuh umgedreht werden. Dafür habe ich jedoch bereits eine lösung:

1
2
3
4
5
6
7
say=$(cat -)

longest=$(echo "$say" | wc -L)

echo "$say" | rev | cowsay | sed 's/\\/\\\\/g' | rev | 
        while read; do printf "%*s\n" $longest "$REPLY"; done | 
        tr '[[]()<>/\\]' '[][)(><\\/]'

Damit wird die Kuh umgedreht, aber der Text wird von unten nach oben angezeigt.

Wie bekomme ich es hin, dass der Text von unten nach oben gedreht wird, ohne das die sich die Kuh auf den Kopf dreht? Die Zeile soll eine feste breite von 50 zeichen habe.

1
2
abc=$(cat -)
echo $abc | rev | tr "/()" "\)(" | cowsay -W 50 -n "$@" | asciirev

Anhang

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Schau mal hier: https://stackoverflow.com/a/13114046

Ansonsten würde ich mir eine eigene Kuh basteln, z.B. /usr/share/cowsay/cows/reversed.cow (auf Basis der www.cow)

$the_cow = <<EOC;
          $thoughts ^__^
    _______\\($eyes)
\\/\\(       \\(__)
    | WWW--|| $tongue
    ||     ||
EOC

Liefert dann z.B.:

$ echo "Hallo, Welt!" | cowsay -f reversed
 ______________ 
< Hallo, Welt! >
 -------------- 
          \ ^__^
    _______\(oo)
\/\(       \(__)            
    | WWW--|| 
    ||     || 
Antworten |