Mam następujące polecenia.
cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php
Na razie wykonuję to jeden po drugim.
Czy istnieje sposób na połączenie tych poleceń w jednym wierszu?
command-line
Giri
źródło
źródło
;
lub&&
wykonywanie wielu poleceń w jednym wierszu” jest znacznie lepsze, ma więcej badań i prawdopodobnie przyciągnęłoby bardzo wiele pozytywnych opinii.Odpowiedzi:
Tak, oddziel je średnikiem tak:
Większość lanugauges / pocisków używa średnika do oznaczenia końca polecenia i rozpoczęcia nowego podczas oceny od lewej do prawej.
Lub, jak zaleca @RobieBasak, użyj && zamiast; aby uchronić się przed wypadkami związanymi z kodowaniem.
źródło
&&
Zamiast tego warto używać;
. Zapewnia to, że kolejne polecenia są wykonywane tylko wtedy, gdy poprzednie polecenia nie zawiodły. Pozwala to uniknąć pewnych niezręcznych konsekwencji. Na przykład:cd /somewhere_else; rm -Rf *
może zrobić coś katastrofalnego, jeśli/somewhere_else
nie istnieje lub źle przeliterujesz;cd /somewhere_else && rm -Rf *
chroni przed tym.To ilustruje więcej:
A; B - Uruchom A, a następnie B, niezależnie od powodzenia lub niepowodzenia A
A && B - Uruchom B tylko, jeśli A się powiedzie
A || B - Uruchom B tylko, jeśli A nie powiodło się
źródło: https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at-once-in-linux/
źródło