У меня есть следующие команды.
cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php
На данный момент я выполняю это один за другим.
Есть ли способ объединить эти команды в одну строку?
command-line
Гири
источник
источник
;
или&&
выполнять несколько команд в одной строке» намного лучше, требует больше исследований и, вероятно, вызвал бы очень много голосов.Ответы:
Да, отделите их точкой с запятой:
Большинство языков / оболочек используют точку с запятой для обозначения конца команды и запуска нового при оценке слева направо.
Или, как рекомендует @RobieBasak, используйте && вместо; для защиты от кодирования несчастных случаев.
источник
&&
вместо;
. Это гарантирует, что последующие команды будут выполнены только в том случае, если предыдущие команды не потерпели неудачу. Это позволяет избежать некоторых неловких последствий. Например:cd /somewhere_else; rm -Rf *
может сделать что-то катастрофическое, если/somewhere_else
его не существует или вы ошиблись;cd /somewhere_else && rm -Rf *
защищает вас от этого.Это иллюстрирует больше:
А; B - Запустите A, а затем B, независимо от успеха или неудачи A
A && B - запуск B только в случае успеха A
A || B - Запустить B, только если A не удалось
источник: https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at-once-in-linux/
источник