Banner (Unix)
banner è un comando presente nei sistemi Unix e Unix-like. Produce una ASCII art del testo fornito come argomento. Un utilizzo di questo comando consiste nel creare pagine di separazione ben visibili tra i fogli da stampare.[1] FunzionamentoOgni argomento è troncato in blocchi di 10 caratteri i quali vengono stampati su "linee" differenti. Per stampare più parole su una singola linea, esse devono essere quindi passate come un singolo argomento, cosa che viene eseguita dalla shell eseguendo l'escape o citando le parole a seconda dei casi.[1] Un programma correlato e più flessibile è FIGlet, il quale può mostrare il testo con diversi font.[2] ImplementazioneIl modo in cui il programma viene implementato internamente è antiquato. I font utilizzati sono inseriti nel codice del programma stesso, come strutture di dati inizializzate staticamente. Vengono utilizzate due strutture di dati: la prima è una tabella di dati comprendente una sequenza di istruzioni di stampa che codificano la bitmap per ogni carattere (in una codifica specifica del programma Entrambe le strutture dati sono state scritte a mano. Spinellis osserva che è "difficile trovare un formato dati più soggetto a errori e non mantenibile". Egli osserva un netto contrasto tra il codice sorgente del programma Spinellis osserva inoltre che nei moderni sistemi informatici è raramente sensato incorporare tali dati nell'immagine eseguibile del programma stesso, poiché i guadagni in termini di prestazioni in tal modo sono trascurabili. Fare ciò rende difficile adattare il programma a diverse localizzazioni oppure mantenere il programma. L'approccio più seguito nei sistemi moderni è quello di archiviare tali informazioni in un file di dati separato, distinto dal file immagine eseguibile del programma, o in un resource fork del programma, che il programma legge in fase di esecuzione.[3] VersioniLista non esaustiva di versioni:
EsempiEsempio di utilizzo di banner in un'applicazione orientata al terminale, in Debian: $ banner 'Hello!'
# # ###
# # ###### # # #### ###
# # # # # # # ###
####### ##### # # # # #
# # # # # # #
# # # # # # # ###
# # ###### ###### ###### #### ###
Una lettera dal programma banner orientato alla stampa come di solito si presenta in BSD e derivati: $ banner -w80 "a"
#####
#########
############### ###
################ ######
################## ########
##### ##### #########
#### #### ## ###
### #### ##
### ### ##
### ### ###
#### ### ####
#############################
##############################
##############################
############################
###########################
###
#
#
In questo esempio il comando banner stampa l'ora corrente fornita tramite $ banner `date +"%H:%M:%S"`
##### ##### # ##### ####### # # #
# # # # # # # # # # # # ## # #
# # # # # # # # # #
##### ##### ##### # # #######
# # # # # # # #
# # # # # # # # # # # #
####### ##### # ##### # # ##### #
Mostra un orologio dinamico per circa 1000 secondi[N 1] (equivale all'utilizzo dell'utility FIGlet con la sostituzione di $ repeat 1000 sh -c '( clear ; date +" %H.%M.%S" | xargs banner ; sleep 1)'
# ##### # ##### ####### #######
## # # ## # # # #
# # # # # # # #
# ###### # ##### ###### ######
# # # ### # # ### # #
# # # ### # # ### # # # #
##### ##### ### ##### ####### ### ##### #####
NoteEsplicative
Bibliografiche
Bibliografia
Voci correlateCollegamenti esterni
|
Portal di Ensiklopedia Dunia