Як об’єднати кілька команд у терміналі?


25

У мене є такі команди.

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

На сьогоднішній день я виконую це по черзі.

Чи є спосіб об'єднати ці команди в один рядок?


3
Чи проводили ви якісь дослідження з цього питання?
don.joey

Це було не моє питання. Це лише те, що півхвилини гуглінгу дали б вам відповідь. Отже, мені було цікаво, що ви вже знайшли, якщо що.
don.joey

Що ви думаєте, що я спростував ваше запитання? Я нехтуватиму вашим гнівом. Як зауваження, питання "який краще: використання ;або &&виконання декількох команд в одному рядку" є набагато кращим, має більше досліджень і, ймовірно, приверне дуже багато відгуків.
don.joey

Існує більш загальний варіант цього питання, доступний на веб- сайті askubuntu.com/questions/334994/… . Це стосується саме того питання, про яке я згадую в попередньому коментарі.
don.joey

Не хвилюйся, Гірі. Суть питання цікава. Я доклав зусиль, щоб зробити загальний його варіант.
don.joey

Відповіді:


33

Так, розділіть крапкою з двокрапкою так:

dir; ls -l

Більшість місць / оболонок використовують напівколонку для позначення кінця команди та для початку нового під час оцінки зліва направо.

Або як рекомендує @RobieBasak, використовуйте && замість; для захисту від нещасних випадків кодування.

dir && ls -l

23
Це корисно використовувати &&замість цього ;. Це забезпечує виконання наступних команд лише у тому випадку, якщо попередні команди не виконувались. Це дозволяє уникнути деяких незручних наслідків. Наприклад: cd /somewhere_else; rm -Rf *можна зробити щось згубне, якщо /somewhere_elseйого немає, або ви неправильно написали його; cd /somewhere_else && rm -Rf *захищає вас від цього.
Робі Басак

2
Рішення "&&" настільки добре, що це має бути першою рекомендацією у цій відповіді. Будь-ласка, відредагуйте свою відповідь та промотуйте кращу відповідь на перше місце.
Керем Байдоган

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.