Как запустить несколько команд Unix за один раз? - PullRequest
7 голосов
/ 13 июля 2011

Я все еще новичок в Unix.Можно ли одновременно запускать несколько команд Unix?Например, написать все те команды, которые я хочу выполнить в файле, а затем, после того как я вызову этот файл, он выполнит все команды внутри этого файла?или есть какой-то способ (или лучше), которого я не знаю?

Спасибо за комментарии и предложения, я буду благодарен.

Ответы [ 8 ]

22 голосов
/ 13 июля 2011

Краткий ответ - да. Эта концепция известна как сценарии оболочки или сценарии bash (обычная оболочка). Чтобы создать простой сценарий bash, создайте текстовый файл с таким названием вверху:

#!/bin/bash

Затем вставьте свои команды внутри него, одну в строку.

Сохраните ваш файл, обычно с расширением .sh (но не обязательно), и вы можете запустить его следующим образом:

sh foo.sh

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

chmod u+x foo.sh

Затем запустите его как:

./foo.sh

Множество ресурсов доступно на этом сайте и в Интернете для получения дополнительной информации, если это необходимо.

18 голосов
/ 13 июля 2011
echo 'hello' && echo 'world'

Просто разделите ваши команды с помощью &&

6 голосов
/ 04 июня 2014

Мы можем запустить несколько команд в оболочке, используя;в качестве разделителя между несколькими командами

Например,

ant clean;ant

Если мы используем && в качестве разделителя, следующая команда будет запущена, если последняя команда будет успешной.

3 голосов
/ 06 июня 2013

Вы также можете использовать точку с запятой ';' и запустить несколько команд, например: $ ls; который

2 голосов
/ 13 июля 2011

Если вы хотите использовать несколько команд в командной строке, вы можете использовать каналы для выполнения операций.

grep "Hello" <file-name> | wc -l

Это даст количество раз, когда «Hello» существует в этом файле.

2 голосов
/ 13 июля 2011

Да, просто поместите все свои команды в один файл, а затем

bash filename

Это будет запускать команды в последовательности. Если вы хотите, чтобы все они работали параллельно (т. Е. Не ждите окончания выполнения команд), добавьте & в конец каждой строки в файле

0 голосов
/ 25 августа 2018

Чтобы команды действительно выполнялись одновременно, вы можете использовать задание zsh

$ zsh -c "[command1] [command1 arguments] & ; [command2] [command2 arguments]"

Или, если вы используете zsh в качестве текущей оболочки:

$ ping google.com & ; ping 127.0.0.1

; - это токен, который позволяет поместить другую команду в ту же строку, которая запускается сразу после первой команды.

& являетсятокен помещается после команды для его запуска в фоновом режиме.

0 голосов
/ 13 июля 2011

Конечно. Это называется «сценарий оболочки». В bash поместите все команды в файл с суффиксом "sh". Затем запустите это:

chmod +x myfile.sh

затем введите

. ./myFile

или

source ./myfile

или просто

./myfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...