15 votes

Comment puis-je imprimer un dessin ASCII existant à partir d'un script Bash script ?

Je viens de voir le dessin ASCII suivant.

          0000_____________0000________0000000000000000__000000000000000000+
        00000000_________00000000______000000000000000__0000000000000000000+
       000____000_______000____000_____000_______0000__00______0+
      000______000_____000______000_____________0000___00______0+
     0000______0000___0000______0000___________0000_____0_____0+
     0000______0000___0000______0000__________0000___________0+
     0000______0000___0000______0000_________000___0000000000+
     0000______0000___0000______0000________0000+
      000______000_____000______000________0000+
       000____000_______000____000_______00000+
        00000000_________00000000_______0000000+
          0000_____________0000________000000007

J'ai un script bash script à partir duquel j'aimerais imprimer ceci. Comment faire ?

C'est quelque chose que je pourrais vouloir redistribuer, donc pour garder les choses simples, je préférerais que les réponses ne nécessitent pas l'installation de choses supplémentaires.

22voto

chaos Points 25386

Il s'agit du formulaire le plus court que j'ai pu produire, qui imprime exactement cela 007 chaîne de caractères :

base64 -d <<<"H4sIAJM2MVYAA1NQgAEDIIhHBsgCBmgAU8TAQJsL2SgU41AFiDALYRhUF8I0NAEUCbBZUB7MBGRrUXX
g8DC6CagORwkYtDCDcw3IMwDdOBL1IyRRwpBI7cihTlSYkRRNUHcRnUZgXIQGIlOoOQC/4ufk0gIAAA==" | gunzip

15voto

Wilf Points 28034

Et si on se contentait de echo ? :

echo -e "              0000_____________0000________0000000000000000__000000000000000000+\n            00000000_________00000000______000000000000000__0000000000000000000+\n           000____000_______000____000_____000_______0000__00______0+\n          000______000_____000______000_____________0000___00______0+\n         0000______0000___0000______0000___________0000_____0_____0+\n         0000______0000___0000______0000__________0000___________0+\n         0000______0000___0000______0000_________000___0000000000+\n         0000______0000___0000______0000________0000+\n          000______000_____000______000________0000+\n           000____000_______000____000_______00000+\n            00000000_________00000000_______0000000+\n              0000_____________0000________000000007;"

Chaque nouvelle ligne a été remplacée par \n pour tout mettre en une seule ligne

enter image description here

Il ne s'adaptera cependant pas au terminal, etc. (à moins que vous ne vérifiiez la largeur du terminal et que vous n'utilisiez la fonction echo un qui est de la bonne taille), et il n'est pas si court que ça non plus (existe-t-il un moyen de mieux répéter les caractères ?) mais cela devrait fonctionner. Si vous voulez aussi les couleurs, vous pouvez utiliser codes d'évasion :

echo -e "\033[31m           0000\033[0m_____________0000________0000000000000000__000000000000000000+\n\033[31m         00000000\033[0m_________00000000______000000000000000__0000000000000000000+\n\033[31m        000\033[0m____000_______000____000_____000_______0000__00______0+\n\033[31m       000\033[0m______000_____000______000_____________0000___00______0+\n\033[31m      0000\033[0m______0000___0000______0000___________0000_____0_____0+\n\033[31m      0000\033[0m______0000___0000______0000__________0000___________0+\n\033[31m      0000\033[0m______0000___0000______0000_________000___0000000000+\n\033[31m      0000\033[0m______0000___0000______0000________0000+\n\033[31m       000\033[0m______000_____000______000________0000+\n\033[31m        000\033[0m____000_______000____000_______00000+\n\033[31m         00000000\033[0m_________00000000_______0000000+\n\033[31m           0000\033[0m_____________0000________000000007;"

enter image description here

D'ailleurs, vous voudrez peut-être tenir compte des droits d'auteur et des choses ennuyeuses en fonction de l'usage que vous en ferez - par exemple, le droit d'auteur. cette version qui est similaire, semble être encore en droit d'auteur.

15voto

Mac Points 1061

Placez les caractères dans un fichier et cat il.

cat 007.txt

Utiliser un "document ici"

cat <<EOF
      0000_____________0000________0000000000000000__000000000000000000+
    00000000_________00000000______000000000000000__0000000000000000000+
    . . .
EOF

echo une chaîne de caractères avec des nouvelles lignes intégrées

echo '          0000_____________0000________0000000000000000__000000000000000000+
    00000000_________00000000______000000000000000__0000000000000000000+
    . . .'

L'avantage de ces approches est que l'art reste lisible.

11voto

Sergiy Kolodyazhnyy Points 97292

Emprunt honteux (ou vol) Réponse de B.Roland Je vous propose un paquet avec un nom coloré toilettes ! Que vous pouvez obtenir avec sudo apt-get install toilet et cela fonctionne à peu près comme suit :

xieerqi:$ toilet 007

  mmmm   mmmm  mmmmmm
 m"  "m m"  "m     #"
 #  m # #  m #    m" 
 #    # #    #   m"  
  #mm#   #mm#   m" 

Il permet également de modifier les polices de caractères (situées dans /usr/share/figlet )

 toilet -f bigascii12  LINUX                                                                                 

 ##         ######   ###   ##  ##    ##  ##    ## 
 ##         ######   ###   ##  ##    ##  :##  ##: 
 ##           ##     ###:  ##  ##    ##   ##  ##  
 ##           ##     ####  ##  ##    ##   :####:  
 ##           ##     ##:#: ##  ##    ##    ####   
 ##           ##     ## ## ##  ##    ##    :##:   
 ##           ##     ## ## ##  ##    ##    :##:   
 ##           ##     ## :#:##  ##    ##    ####   
 ##           ##     ##  ####  ##    ##   :####:  
 ##           ##     ##  :###  ##    ##   ##::##  
 ########   ######   ##   ###  :######:  :##  ##: 
 ########   ######   ##   ###   :####:   ##    ##

6voto

PKumar Points 2392

Installer banner et créez un script bash.

sudo apt-get install sysvbanner

voir l'exemple de commande ci-dessous

banner 007

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X