Oggi conosceremo una libreria bash, creata da Metal3D che permette di creare interfacce semi-grafiche molto simili alle curses con la semplicità di bash.
Il programma si chiama bashsimplecurses ed è possibile scaricarlo alla sua pagina Google Code. Purtroppo ancora questa libreria non riesce a sostituire le mitiche curses/ncurses dato che supporta solo la visualizzazione di finestre colorate nello schermo (niente menù e form, ma per questo è possibile usare Dialog). Lo script è stato creato interamente utilizzando le funzioni che ci offre bash (come echo)
Ma non perdiamoci in chiacchiere e vediamo come funziona.
Dopo aver scaricato il pacchetto tar.gz, scompattiamolo e diamo (da root) il comando make install. Dopodichè, copiamo il file simple_curses.sh nella cartella dove salveremo i nostri script.
A questo punto, vediamo come creare le famose finestrelle.

#!/bin/bash

#importo lo script
source $(dirname $0)/simple_curses.sh

#creo la funzione principale
main(){
window "Titolo della finestra"
append "Contenuto"
endwin
}
main_loop


Questo script servirà per creare questo:


Per dare un pò di colore alla nostra finestra, ci basterà specificare dopo il nome della finestra, il colore che vorremmo utilizzare (es “red”) tra

  • red
  • green
  • blue
  • grey

Mentre, per specificare la dimensione della finestra, basterà scrivere la percentuale dopo il colore (o il titolo) (es 50).

I comandi sono i seguenti:

  • window “TITLE” “COLOR” WIDTH = Crea una finestra con Titolo, colore e dimensione
  • append “TEXT” = Inserisce una riga di testo nella finestra
  • append_tabbed “TEXTE” COLS SEP = Inserisce una tabella nella finestra
  • append_file = Inserisce un file nella finestra
  • append_command = Esegue un comando nella finestra
  • addsep = Aggiunge un separatore

Per creare più finestre in uno script, basterà ripetere tutti i comandi ricordando che, con il comando move_up si tornerà in alto mentre col_right porterà la nuova finestra a sinistra. Per capirci questo:

#!/bin/bash

source $(dirname $0)/simple_curses.sh

main(){
window “Test 1” “red” “33%”
append “Prima finestra”
endwin

col_right
move_up

window “Test 2” “red” “33%”
append “Linea 1”
append “Linea 2”
endwin

window “Test 3” “red” “33%”
append “Testo, testo e ancora testo”
endwin
window “Test 4” “grey” “33%”
append “Esempio di comando”
append “`date`”
append “Ecco la data di oggi”
endwin

col_right
move_up
window “Test 5” “red” “34%”
append “Aggiungiamo delle piccole finestre!”
endwin

window “Little” “green” “12%”
append “Finestrella 1”
endwin
col_right
window “Other window” “blue” “22%”
append “Finestrella 2”
endwin

}
main_loop

Ed ecco il risultato:

Comodo, no?

Questo articolo è stato preso dal sito Digilinux di matrobriva secondo i termini della licenza Creative Commons BY 2.5.
L’articolo originale si trova alla pagina: http://digilinux.altervista.org/articoli/bashcurses.html
No more articles