Come combinare più comandi nel terminale?


25

Ho i seguenti comandi.

cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php

A partire da ora lo sto eseguendo uno per uno.

C'è un modo per combinare quei comandi in una riga?


3
Hai fatto qualche ricerca per questa domanda?
— don.joey,

Non era questa la mia domanda. È solo che mezzo minuto di googling ti avrebbe dato la risposta. Quindi, mi chiedevo cosa avessi già trovato, se non altro.
— don.joey,

Cosa ti fa pensare che ho annullato il voto della tua domanda? Trascurerò la tua rabbia. Come nota a margine, la domanda "quale è meglio: usare ;o &&eseguire più comandi in una riga" è molto meglio, ha più ricerche e probabilmente avrebbe attirato molti voti positivi.
— don.joey,

C'è una variante più generica di questa domanda disponibile su askubuntu.com/questions/334994/… . Affronta esattamente la domanda che menziono nel commento precedente.
— don.joey,

Non preoccuparti Giri. L'essenza della domanda è interessante. Mi sono sforzato di farne una variante generica.
— don.joey,

Risposte:


33

Sì, separalo con un punto e virgola in questo modo:

dir; ls -l

La maggior parte dei lanugauges / shell usano i punti e virgola per indicare la fine di un comando e per iniziare nuovi durante la valutazione da sinistra a destra.

O come raccomanda @RobieBasak, usa && invece di; per evitare incidenti di codifica.

dir && ls -l

23
È una buona idea usare al &&posto di ;. Ciò garantisce che i comandi successivi vengano eseguiti solo se i comandi precedenti non hanno fallito. Questo evita alcune conseguenze imbarazzanti. Ad esempio: cd /somewhere_else; rm -Rf *potresti fare qualcosa di disastroso se /somewhere_elsenon esiste o se lo scrivi male; cd /somewhere_else && rm -Rf *ti protegge da questo.
— Robie Basak,

2
La soluzione "&&" è così buona, dovrebbe essere la prima raccomandazione in questa risposta. Modifica la tua risposta e promuovi la risposta migliore al primo posto.
— Kerem Baydoğan,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.