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

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

это смешно для не повторяющихся и каждый раз других наборов команд.

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

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

1
задан 1 February 2014 в 08:49

2 ответа

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

Запустите свой запрос (первая строка) с помощью 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: / $
8
ответ дан 24 May 2018 в 12:17
  • 1
    if true; then может быть более четким, если нужно. : можно с первого взгляда путать с ;. – kiri 1 February 2014 в 16:45

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

Пример:

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

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

list
of
commands
to run at once

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

4
ответ дан 24 May 2018 в 12:17
  • 1
    Это то же самое, что if :; then уже упоминалось? Или это немного отличается? – MrVaykadji 1 February 2014 в 16:38
  • 2
    @MrVaykadji Это тот же результат, но другой метод. if : запускает тест по команде null, которая всегда возвращает true. { .. } просто группирует команды вместе. Я лично считаю, что { .. } легче запомнить. – kiri 1 February 2014 в 16:39

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

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