Без регулярного выражения:
str = str.split("\n").join("<br />");
{
/your/first/command
/your/second/command
} &> /dev/null
Чтобы исключить вывод команд, у вас есть две возможности:
your_command "Is anybody listening?" >&-
Обычно вывод идет либо в дескриптор файла 1 (stdout), либо 2 (stderr). Если вы закроете дескриптор файла, вам нужно будет сделать это для каждого нумерованного дескриптора, так как &>
(ниже) является специальным синтаксисом BASH, несовместимым с >&-
: /your/first/command >&- 2>&-
Будьте внимательны, чтобы отметить порядок: >&-
закрывает stdout , что вы хотите сделать; &>-
перенаправляет stdout и stderr в файл с именем -
(дефис), что не то, что вы хотите сделать. Сначала он будет выглядеть одинаково, но последний создает в вашем рабочем каталоге бродячий файл. Легко запомнить: >&2
перенаправляет stdout на дескриптор 2 (stderr), >&3
перенаправляет stdout в дескриптор 3, а >&-
перенаправляет stdout в тупик (т. Е. Закрывает stdout). Также будьте осторожны, что некоторые команды могут не обрабатывать дескриптор закрытого файла особенно хорошо («write error: Bad file descriptor»), поэтому лучшим решением может быть ... /dev/null
, который принимает весь вывод и ничего не делает с ним. Это выглядит так: your_command "Hello?" > /dev/null
Для перенаправления вывода в файл вы можете направить как stdout, так и stderr в одно и то же место очень кратко, но только в bash: /your/first/command &> /dev/null
Наконец, делать то же самое для нескольких команд сразу, окружать все это в фигурных скобках. Bash рассматривает это как группу команд , агрегируя дескрипторы выходных файлов, чтобы вы могли перенаправить все сразу. Если вы знакомы с подоболочками с использованием синтаксиса ( command1; command2; )
, вы обнаружите, что фигурные скобки ведут себя почти точно так же, за исключением того, что, если вы не вовлечете их в трубу, скобки не будут создавать подоболочку и, таким образом, позволят вам установить переменные внутри.
{
/your/first/command
/your/second/command
} &> /dev/null
Для получения дополнительной информации, параметров и синтаксиса см. руководство bash о перенаправлениях .
Вы можете перенаправить вывод на /dev/null
.
Вы можете скрыть вывод комманда следующими способами:
echo -n "Installing nano ......"; yum install nano > /dev/null; echo " done.";
Перенаправить стандартный вывод на /dev/null
, но не стандартная ошибка. Это покажет ошибки, возникающие во время установки, например, если yum
не может найти пакет.
echo -n "Installing nano ......"; yum install nano &> /dev/null; echo " done.";
Пока этот код ничего не отображает в терминале, так как стандартная ошибка и стандартный вывод перенаправляются и, таким образом, аннулируются до /dev/null
.
Вы не должны использовать bash в этом случае, чтобы избавиться от вывода. У Yum есть опция -q
, которая подавляет выход.
Вы, конечно же, также захотите использовать -y
echo "Installing nano..."
yum -y -q install nano
Чтобы просмотреть все параметры yum, используйте man yum
.
Вы можете перенаправить stdout в /dev/null.
yum install nano > /dev/null
Или вы можете перенаправить как stdout, так и stderr,
yum install nano &> /dev/null
.
Но если у программы есть тихий вариант, это еще лучше.
Обычно процесс имеет два выхода на экран: stdout (стандартный выход) и stderr (стандартная ошибка).
Обычно информационные сообщения переходят к sdout
, а ошибки и предупреждения идут в stderr
.
Вы можете отключить stdout
для команды, выполнив
MyCommand >/dev/null
и выключить stderr
, выполнив:
MyCommand 2>/dev/null
Если вы хотите выполнить оба действия:
MyCommand 2>&1 >/dev/null
2>&1
говорит, что send stderr находится на том же месте, что и stdout.
>/dev/null 2>&1
отключит звук stdout
и stderr
yum install nano >/dev/null 2>&1
.SILENT:
Введите «.SILENT:» в начале вашего скрипта без двоеточий.
if
? – Flash Thunder 6 December 2016 в 18:35if
подсчитывает коды выхода, которые сохраняют перенаправление файлов, как указано выше. Если вы пытаетесь использовать$(foo)
в тесте[
или[[
, то вы правы, что$(foo &> /dev/null)
ничего не вернет, но это все, что связано с заменой команды i> и не имеет ничего общего сif
или[
/[[
. Вы можете использовать$(foo 2>/dev/null)
только для молчания stderr (дескриптор файла 2) и по-прежнему получать вывод подстановки команд. – Jeff Bowman 7 December 2016 в 18:54