2015-06-10 6 views
10

Sto usando docker-machine per gestire i miei server cloud. Sto scrivendo alcuni script bash per automatizzare alcune attività. La domanda è: "Come controllare lo script di bash se la macchina mobile con il nome specifico esiste già?". Ho bisogno di un'espressione per restituire true se esiste e false se non lo è.Come verificare se la macchina mobile è presente a livello di codice?

Grazie

+0

sguardo all'uscita del 'which finestra mobile-machine' e verificare se tale file esiste? Ci dovrebbe essere un modo migliore – user2915097

risposta

1

Non un guru scripting ma vorrei fare un "docker-machine help", se il comando viene eseguito e il codice di uscita ($?) È pari a zero, l'eseguibile finestra mobile-macchina è disponibile e il funzionamento. Se il codice di ritorno è 127 (in genere restituito da bash per comando non trovato) o qualsiasi altro diverso da zero, è possibile presumere che la macchina mobile non sia installata o non funzioni correttamente.

+0

Immagino tu intenda "codice di uscita ($?)" –

+0

@ ChandanNayak Grazie per la correzione, sì intendevo $ ?. Aggiornata la risposta. –

11

Basta eseguirlo tramite grep, se una regexp è sufficiente per te. Per esempio, se si dispone di una macchina chiamata foo:

$ docker-machine ls -q | grep '^foo$' 

dovrebbero lavorare e tornare a 0. L'accento circonflesso corrisponde anche all'inizio della linea e lo spazio evita corrispondenze parziali. Se non corrisponde otterrai un codice di ritorno diverso da zero.

+0

10x! Questo era esattamente quello che stavo chiedendo di – wildsurfer

7

Si può usare qualcosa di simile a quanto segue:

docker-machine status some-machine 2> /dev/null || echo "Machine does not exists" 
+0

trovo questa soluzione molto pulita. – Abhinav