Posso personalizzare i miei comandi con degli alias che supportino parametri nel Terminale di OSX?

La risposta è "sì". Nel caso frequente in cui si vogliano semplicemente "accodare" parametri passati quando si usa l'alias ad altri parametri passati quando lo si definisce, non c'è da fare nulla di speciale. In tcsh:

% alias dimmi echo
% dimmi ciao
ciao
%

e similmente in bash:

$ alias dimmi=echo
$ dimmi ciao
ciao
$

Quando si vuole una gestione più avanzata dei parametri, si può fare anche questo. I modi per farlo sono due (a seconda della shell che si usa, tcsh o bash).

Con tcsh si possono usare anche per questo gli alias, mettendo nella definizione dell'alias parametri della forma "!:n" per l'n-esimo parametro, con il "!" che va quotato (tipicamente con un back-slash) quando viene definito l'alias:

% alias ripeti 'echo \!:1 \!:1'
% ripeti ciao
ciao ciao
%

In bash invece vanno definite delle funzioni al posto degli alias. Le funzioni sono più versatili; oltre ad accettare parametri possono chiamarsi ricorsivamente, e possono contenere anche variabili localmente dichiarate (con il comando bash "local"). Comunque, ecco un esempio analogo al precedente:

$ function ripeti { echo $1 $1; }
$ ripeti ciao
ciao ciao
$

Per ulteriori informazioni, e per qualunque uso più avanzato, si rimanda ovviamente alle pagine di man delle rispettive shell.

[ Home | Elenco delle FAQ | Risorse | Feed RSS ]