Michele Liberi software

versione 1.04, giugno 2026

Michele Liberi
mail: mliberi@gmail.com
cell: +393485211456
telegram: @MicheleLiberi

liberix

ksh e bash

Per motivi di rapidità di sviluppo, e per l'implementazione di algoritmi che non richiedono l'efficienza del linguaggio C, ho scritto una grande quantità di programmi utilizzando la shell dei sistemi UNIX.

I linguaggi di scripting utilizzati sono tre:

Per lunghissimo tempo ho usato la ksh, shell standard dei sistemi IBM AIX, e negli ultimi anni utilizzo sistematicamente la bash, shell standard dei sistemi Linux. La ksh93 è stata utilizzata raramente nei casi in cui avevo realmente bisogno delle funzionalità non presenti nella ksh.

Anche in questo caso, per non dover ogni volta reinventare la ruota, ho raccolto in librerie le funzioni riutilizzabili.

Le librerie di funzioni sono raccolte in moduli, files con estensione .km che vengono generati con il comando kcc e letti a runtime dalle script compilate. La ricompilazione di un modulo implica la modifica istantanea di tutti i programmi che ne fanno uso.

Nel momento in cui una script viene posta in esecuzione deve reperire tutti i moduli di cui ha bisogno. Per prima cosa cerca il modulo nella directory dove risiede l'eseguibile, se non c'è lo cerca nel PATH.

Lista dei moduli:

gp.km
Questo modulo contiene 53 funzioni di uso generale, che si possono classificare in varie categorie:
webauth.km
Questo modulo contiene 11 funzioni necessarie per la gestione dell'autenticazione applicativa per programmi CGI. Gestisce il login (cifrato anche su connessioni HTTP) e la persistenza delle sessioni per applicazioni web. Le due funzioni fondamentali sono:
funzioneargomentidescrizione
webauth_known_user restituisce rc=0 se esiste una sessione attiva per l'utente. Le credenziali di login, se presenti, vengono verificate e se valide viene creata una sessione. Il file di sessione contiene tre informazioni, in caso di non esatta corrispondenza la sessione verrà ritenuta non valida e cancellata:
  • nome utente
  • indirizzo IP di provenienza della richiesta
  • identificativo del browser che ha immesso la richiesta
webauth_require_valid_user application name verifica che esista una sessione attiva, in caso contrario presenta un form di login
sql.km
Questo modulo contiene 3 funzioni che permettono di interagire con database oracle o IBM DB/2.
lra.km
Questo modulo contiene 2 funzioni che permettono di interagire con un server LRM (logical resource manager): Esempio: acquisisce la risorsa logica lic, attende 5s, rilascia la risorsa logica. #/bin/bash #kccuse lra.km lrm_cmd acq lic # acquisisce la risorsa logica <i>lic</i> sleep 5 lrm_cmd rel lic # rilascia la risorsa lrm_close # chiude la connessione
pm.km
Questo modulo contiene 11 funzioni che permettono di interagire con un server Enovia/PM, un PLM per la gestione di documentezione tecnica.
ezw.km
Questo modulo contiene 10 funzioni che permettono di interagire con ezwindow, un tool per lo sviluppo rapido di applicazioni grafiche X-client.

(c) M. Liberi, last updated: 2026-06-09