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 $@
7
7";
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 $@
}