Как выполнить несколько команд друг за другом с одним запросом к терминалу (без использования файла)?

Я мог бы (1) подготовить файл с напечатанными командами, разделенными конечной строкой, (2) сделать его исполняемым, (3) запустить его из менеджера файловой системы или терминала.

Но это смешно для неповторяющихся и постоянно повторяющихся наборов команд.

Могу ли я вместо этого ввести эти команды в терминал одним запросом?

Я не знаю символа конца строки для терминала - Ctrl, Shift или Alt с Enter не работают.

22
задан 1 February 2014 в 06:49

3 ответа

Вы можете разделить команды с помощью && или ;.

  • && запускает следующую команду, только если предыдущая вышла со статусом 0 (была успешной):

    command1 && command2 && command3
    
  • ; выполняет все команды, даже если предыдущая выходит с ненулевым статусом:

    command1; command2; command3
    

Вы можете комбинировать эти разделители, как хотите.

0
ответ дан 1 February 2014 в 06:49

Если вас интересует ввод каждой команды в отдельной строке в одном запросе, вы можете использовать следующий метод:

  • Начните ваш запрос (первая строка) с if :; then ( это означает: если true, тогда делайте) и нажмите Enter ; Ваше приглашение теперь изменится в >, и ничего не будет выполнено.

  • Введите ваши команды, за которыми следуют Enter

  • Завершите ваш запрос нажатием fi (конец выше if) условие) и нажмите Enter . Теперь все ваши команды будут выполняться в указанном порядке.

Пример:

radu@Radu: ~ $ if :; then
> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu@Radu: / $
0
ответ дан 1 February 2014 в 06:49

Во-первых, поставьте { на отдельной строке.
Затем введите ваши команды.
Затем поместите } в новую строку и нажмите Enter . Ваши команды будут выполнены.

Пример:

{
echo list
echo of
echo commands
echo to run at once
}

, который будет печатать (все сразу, без подсказки между ними):

list
of
commands
to run at once

В качестве примечания, { .. } - команда Bash групповой синтаксис. Это часто полезно в сочетании с && или || ('и', и 'или' соответственно)

0
ответ дан 1 February 2014 в 06:49

Другие вопросы по тегам:

Похожие вопросы: