Я мог бы (1) подготовить файл с напечатанными командами, разделенными конечной строкой, (2) сделать его исполняемым, (3) запустить его из менеджера файловой системы или терминала.
Но это смешно для неповторяющихся и постоянно повторяющихся наборов команд.
Могу ли я вместо этого ввести эти команды в терминал одним запросом?
Я не знаю символа конца строки для терминала - Ctrl, Shift или Alt с Enter не работают.
Ответы:
Вы можете разделить команды с помощью
&&
или;
.&&
запускает следующую команду, только если предыдущая вышла со статусом 0 (была успешной):;
выполняет все команды, даже если предыдущая выходит с ненулевым статусом:Вы можете объединить эти разделители, как вы хотите.
источник
command1 && command2
команды2 будет выполняться только в том случае, если команда1 будет успешной.sudo apt upgrade
иsudo systemctl reboot
, вам нужно было бы добавить «sudo» дважды, или он «запомнит» sudo для второй команды?Если вы заинтересованы в вводе каждой команды в отдельной строке в одном запросе, вы можете использовать следующий метод:
Начните ваш запрос (первая строка) с
if :; then
(это означает: если true, затем сделайте) и нажмите Enter; Ваше приглашение изменится,>
и ничего не будет выполнено.Введите ваши команды, каждая из которых сопровождается Enter
Завершите ваш запрос с помощью
fi
(конец вышеуказанногоif
условия) и нажмите Enter. Теперь все ваши команды будут выполняться в указанном порядке.Пример:
источник
if true; then
может быть более понятным для чтения, если это желательно.:
можно спутать с;
первого взгляда.Во-первых, положить
{
на собственную линию.Затем вставьте свои команды.
Затем вставьте
}
новую строку и нажмите Enter. Ваши команды будут выполнены.Пример:
который напечатает (все сразу, без подсказки между ними):
Как примечание,
{ .. }
это синтаксис группировки команд Bash. Это часто полезно в сочетании с&&
или||
('и', и 'или' соответственно)источник
if :; then
уже упоминалось? Или это немного отличается?if :
запускает тест по нулевой команде, которая всегда возвращает true.{ .. }
просто группирует команды вместе. Мне лично{ .. }
легче запомнить.