Jak połączyć wiele poleceń w terminalu?


25

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?


3
Czy przeprowadziłeś jakieś badania dotyczące tego pytania?
don.joey

To nie było moje pytanie. Po prostu pół minuty googlingu dałoby ci odpowiedź. Zastanawiałem się więc, co już znalazłeś.
don.joey

Co sprawia, że ​​myślisz, że przegłosowałem twoje pytanie? Zlekceważę twój gniew. Na marginesie, pytanie „który z nich jest lepszy: używanie ;lub &&wykonywanie wielu poleceń w jednym wierszu” jest znacznie lepsze, ma więcej badań i prawdopodobnie przyciągnęłoby bardzo wiele pozytywnych opinii.
don.joey

Bardziej ogólny wariant tego pytania dostępny jest na stronie askubuntu.com/questions/334994/… . Dotyczy dokładnie pytania, o którym wspomniałem w poprzednim komentarzu.
don.joey

Nie martw się Giri. Istota pytania jest interesująca. Podjąłem wysiłek, aby stworzyć ogólny wariant tego.
don.joey

Odpowiedzi:


33

Tak, oddziel je średnikiem tak:

dir; ls -l

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.

dir && ls -l

23
&&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_elsenie istnieje lub źle przeliterujesz; cd /somewhere_else && rm -Rf *chroni przed tym.
Robie Basak,

2
Rozwiązanie „&&” jest tak dobre, że powinno być pierwszą rekomendacją w tej odpowiedzi. Edytuj swoją odpowiedź i promuj lepszą odpowiedź na pierwszym miejscu.
Kerem Baydoğan,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.