2012-03-22 16 views
12

ho messo insieme un gruppo di comandi alias in una cartella. soprattutto ssh, così invece di dover digitareottenere lo script bash per echo il comando in esecuzione

ssh [user]@[server] 

dieci volte al giorno, posso solo digitare

server 

ei fuochi di script alias. lo script è semplicemente il comando

ssh [user]@[server] 

funziona tutto bene. ma mi stavo chiedendo se ci fosse un modo in bash dove invece di sparare il comando ssh in silenzio, avrebbe visualizzato il comando che viene eseguito?

risposta

15

È possibile debug the script con -x, che farà eco i comandi e gli argomenti.

bash -x script.sh 

È possibile fare questo per specifiche porzioni del file, troppo (dalla sezione 2.3.2 linkato sopra):

set -x   # activate debugging from here 
ssh [email protected] ... 
set +x   # stop debugging from here 

L'uscita dal -x potrebbe essere un po 'troppo prolisso per ciò che si' sto cercando, però, dato che è pensato per il debug (e non per la registrazione).

Forse starai meglio scrivendo le tue dichiarazioni echo - che ti darebbero il pieno controllo sull'output.

+0

che sconfigge un pò lo scopo della alias. a meno che qualcuno non abbia un'altra idea, aggiungerò solo un'eco per il comando sopra il comando effettivo e vedremo come funziona. – scphantm

+0

@scphantm - Sì, in realtà non è pensato per la registrazione - più è per il debug. Ma fa il lavoro. Probabilmente c'è una soluzione migliore. Aggiungere le proprie dichiarazioni 'echo' sarebbe probabilmente il migliore; avresti il ​​pieno controllo sulla registrazione, quindi. L'ho incorporato nella mia risposta. –

+0

Ora mi piace. molto bello ... giocherò sicuramente un po 'con questo e assicurarmi che funzioni. Grazie – scphantm

Problemi correlati