EDIT : su Yosemite (OS X 10.10) usa invece:
function ssh ()
{
servername=$(echo $@ | sed -E 's|([- a-zA-Z0-9:/]+)( *[^@ ]*@)([^@ ]*)||')
echo -ne "3]0;${servername}unset -f ssh
7";
/usr/bin/ssh $@
}
Si noti che la funzione prevede che nome utente e nome server siano specificati come user@server (è possibile utilizzare anche l'indirizzo IP del server: [email protected] , il nome della scheda verrà impostato su a.b.c.d ). Altre combinazioni come -l user server non funzioneranno correttamente.
È possibile annullare la funzione con:
function ssh ()
{
servername=$(echo $@ | sed 's|\([- a-zA-Z0-9:/]\+\) *\([^-]\+@\)*\([-a-zA-Z0-9.]\+\)||' | awk '{print $1}');
echo -ne "3]0;${servername}ssh user@server command
7";
/usr/bin/ssh $@
}
Puoi creare una funzione denominata ssh che imposta il nome della scheda terminale e richiama /usr/sbin/ssh :
ssh jaume@myserver ls -l /
-
servername=$(echo $@ ...
La prima riga estrae il nome del server dagli argomenti passati a ssh . L'ho provato contro diverse possibili invenzioni di ssh con e senza argomenti, ma non posso promettere che è a prova di proiettile.
-
echo -ne "3]0;${servername}3]0;<name>/usr/bin/ssh $@77";
La seconda riga è dove avviene la magia.
/usr/bin/ssh è una sequenza ESCAPE che imposta il nome della scheda terminale. Vedi questo articolo di Wikipedia per maggiori informazioni - questo particolare codice di escape è elencato nel sezione codici non CSI .
-
~/.bashrc
Inizia bash con argomenti forniti.
Aggiungi la funzione al tuo file %code% (se non usi %code% modificalo per abbinare la sintassi della tua shell e aggiungila al file di avvio della tua shell) in modo che sia sempre accessibile.
Si noti che imposterà anche il nome della scheda terminale quando si esegue un comando remoto:
function ssh ()
{
servername=$(echo $@ | sed -E 's|([- a-zA-Z0-9:/]+)( *[^@ ]*@)([^@ ]*)||')
echo -ne "3]0;${servername}unset -f ssh
7";
/usr/bin/ssh $@
}
ad esempio:
function ssh ()
{
servername=$(echo $@ | sed 's|\([- a-zA-Z0-9:/]\+\) *\([^-]\+@\)*\([-a-zA-Z0-9.]\+\)||' | awk '{print $1}');
echo -ne "3]0;${servername}ssh user@server command
7";
/usr/bin/ssh $@
}