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.