- Как скрыть вывод команды в Bash
- Как скрыть вывод команды в Bash
- Как подавить весь вывод команды Bash? — Подсказка по Linux
- Метод подавления всего вывода команды Bash в Linux Mint 20:
- Пример №1: Подавление выполнения сценария Bash / Подавление вывода команды «bash»:
- Пример №2: Подавление вывода команды «cat»:
- Пример №3: Подавление вывода команды «–help»:
- Пример №4: Подавление вывода команды «–версия»:
- Пример № 5: Подавление вывода команды «man»:
- Вывод:
- How can I suppress all output from a command using Bash?
- 9 Answers 9
Как скрыть вывод команды в Bash
Я хочу сделать мои сценарии Bash более элегантными для конечного пользователя. Как скрыть вывод, когда Bash выполняет команды?
Например, когда Bash выполняет
Следующее будет отображаться пользователю, выполнившему Bash:
Loaded plugins: fastestmirror base | 3.7 kB 00:00 base/primary_db | 4.4 MB 00:03 extras | 3.4 kB 00:00 extras/primary_db | 18 kB 00:00 updates | 3.4 kB 00:00 updates/primary_db | 3.8 MB 00:02 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package nano.x86_64 0:2.0.9-7.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: nano x86_64 2.0.9-7.el6 base 436 k Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 436 k Installed size: 1.5 M Downloading Packages: nano-2.0.9-7.el6.x86_64.rpm | 436 kB 00:00 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key) Package: centos-release-6-4.el6.centos.10.x86_64 (@anaconda-CentOS-201303020151.x86_64/6.4) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : nano-2.0.9-7.el6.x86_64 1/1 Verifying : nano-2.0.9-7.el6.x86_64 1/1 Installed: nano.x86_64 0:2.0.9-7.el6 Complete!
Теперь я хочу скрыть это от пользователя и вместо этого показать:
Как я могу выполнить эту задачу? Я обязательно помогу сделать скрипт более удобным для пользователя. В случае возникновения ошибки ее следует показать пользователю.
Я хотел бы знать, как показать одно и то же сообщение при выполнении набора команд.
Как скрыть вывод команды в Bash
Я хочу сделать мои сценарии Bash более элегантными для конечного пользователя. Как скрыть вывод, когда Bash выполняет команды?
Например, когда Bash выполняет
Следующее будет отображаться пользователю, выполнившему Bash:
Loaded plugins: fastestmirror base | 3.7 kB 00:00 base/primary_db | 4.4 MB 00:03 extras | 3.4 kB 00:00 extras/primary_db | 18 kB 00:00 updates | 3.4 kB 00:00 updates/primary_db | 3.8 MB 00:02 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package nano.x86_64 0:2.0.9-7.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: nano x86_64 2.0.9-7.el6 base 436 k Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 436 k Installed size: 1.5 M Downloading Packages: nano-2.0.9-7.el6.x86_64.rpm | 436 kB 00:00 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key) Package: centos-release-6-4.el6.centos.10.x86_64 (@anaconda-CentOS-201303020151.x86_64/6.4) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : nano-2.0.9-7.el6.x86_64 1/1 Verifying : nano-2.0.9-7.el6.x86_64 1/1 Installed: nano.x86_64 0:2.0.9-7.el6 Complete!
Теперь я хочу скрыть это от пользователя и вместо этого показать:
Как я могу выполнить эту задачу? Я обязательно помогу сделать скрипт более удобным. В случае возникновения ошибки ее следует показать пользователю.
Я хотел бы знать, как показать одно и то же сообщение при выполнении набора команд.
Как подавить весь вывод команды Bash? — Подсказка по Linux
Каждый раз, когда мы запускаем команду Bash на нашем терминале Linux Mint 20, обычно мы видим какой-то вывод на терминале. То же самое для команд и сценариев Bash. Иногда мы можем не желать видеть такой результат. Это происходит особенно, когда мы хотим отладить программу и заинтересованы только в обнаружении возникающих ошибок. В этой ситуации, если нам будет представлен весь вывод, он будет не только бесполезен для нас, но и будет тратить наше время на поиск реальной проблемы.
Вот почему мы предпочитаем подавлять фактический вывод команд или скриптов Bash таким образом, чтобы на терминале отображались только их ошибки (если таковые имеются). В противном случае ничего не будет отображаться. Поэтому сегодня мы поговорим о методе подавления всего вывода команды Bash в Linux Mint 20.
Метод подавления всего вывода команды Bash в Linux Mint 20:
Чтобы объяснить вам метод подавления всего вывода команды Bash в Linux Mint 20, мы хотели бы поделиться с вами некоторыми примерами.
Мы создали простой сценарий Bash, в котором мы просто печатаем случайное сообщение на терминале. Мы будем использовать этот сценарий Bash в Примере №1 и Примере №2. Этот сценарий Bash отображается на прикрепленном изображении. Мы назвали наш файл Bash Suppress.sh.
Пример №1: Подавление выполнения сценария Bash / Подавление вывода команды «bash»:
Сценарий Bash, который мы только что создали, можно просто запустить с помощью команды «bash». Прежде чем подавлять вывод команды «bash», мы сначала хотели бы показать вам ее фактический вывод. Для этого вам нужно выполнить свой сценарий Bash следующим образом:
Выполнение этого сценария Bash просто отобразит наше фиктивное сообщение на терминале, как показано ниже:
Теперь, чтобы подавить вывод команды «bash», мы запустим следующую команду в нашем терминале:
$ трепать Suppress.sh >/ разработчик / значение NULL
Выполнение процитированной выше команды отправит весь вывод в корзину> / dev / null, и, следовательно, на вашем терминале ничего не будет отображаться, как показано на добавленном ниже изображении:
Пример №2: Подавление вывода команды «cat»:
Мы также можем отобразить содержимое нашего файла сценария Bash на терминале с помощью команды «cat». Прежде чем подавлять вывод команды «cat», мы сначала хотели бы показать вам ее фактический вывод. Для этого вам нужно запустить команду «cat» следующим образом:
Выполнение команды «cat» просто отобразит содержимое нашего файла сценария Bash на терминале, как показано ниже:
Теперь, чтобы подавить вывод команды «cat», мы запустим следующую команду в нашем терминале:
$ Кот Suppress.sh >/ разработчик / значение NULL
При выполнении указанной выше команды весь вывод будет отправлен в корзину> / dev / null, и, следовательно, на вашем терминале ничего не будет отображаться, как показано на изображении ниже:
Пример №3: Подавление вывода команды «–help»:
Если вы хотите узнать подробности использования какой-либо команды или пакета в Linux Mint 20, вы можете использовать команду «–help». Прежде чем подавлять вывод команды «–help», мы сначала хотели бы показать вам ее фактический вывод. Для этого вам нужно запустить команду «–help» следующим образом:
Мы хотели получить доступ к справочному руководству редактора nano, которое показано на изображении ниже:
Теперь, чтобы подавить вывод команды «–help», мы запустим следующую команду в нашем терминале:
$ нано —помощь >/ разработчик / значение NULL
При выполнении указанной выше команды весь вывод будет отправлен в корзину> / dev / null, и, следовательно, на вашем терминале ничего не будет отображаться, как показано на изображении, добавленном ниже:
Пример №4: Подавление вывода команды «–версия»:
Если вы хотите проверить версию любого установленного пакета или команды в Linux Mint 20, вы можете использовать команду «–version». Прежде чем подавлять вывод команды «–version», мы сначала хотели бы показать вам ее фактический вывод. Для этого вам нужно запустить команду «–версия» следующим образом:
Мы хотели проверить версию редактора nano, которая показана на изображении ниже:
Теперь, чтобы подавить вывод команды «–version», мы запустим следующую команду в нашем терминале:
$ нано —версия >/ разработчик / значение NULL
При выполнении указанной выше команды весь вывод будет отправлен в корзину> / dev / null, и, следовательно, на вашем терминале ничего не будет отображаться, как показано на изображении, добавленном ниже:
Пример № 5: Подавление вывода команды «man»:
Когда бы вы ни захотели прочитать руководство или справочные страницы любой установленной команды или пакета в Linux Mint 20, вы можете использовать команду «man». Прежде чем подавлять вывод команды «man», мы сначала хотели бы показать вам ее фактический вывод. Для этого вам нужно запустить команду «man» следующим образом:
Мы хотели получить доступ к руководству редактора nano, которое показано на изображении ниже:
Теперь, чтобы подавить вывод команды «man», мы запустим следующую команду в нашем терминале:
$ человек нано >/ разработчик / значение NULL
При выполнении указанной выше команды весь вывод будет отправлен в корзину> / dev / null, и, следовательно, на вашем терминале ничего не будет отображаться, как показано на изображении ниже:
Вывод:
В этой статье мы поделились с вами пятью различными примерами подавления всего вывода команды Bash в Linux Mint 20. Пройдя эти примеры, теперь вы легко сможете подавить вывод любой желаемой команды Bash или сценария Bash при использовании Linux Mint 20.
How can I suppress all output from a command using Bash?
I have a Bash script that runs a program with parameters. That program outputs some status (doing this, doing that. ). There isn’t any option for this program to be quiet. How can I prevent the script from displaying anything? I am looking for something like Windows’ «echo off».
9 Answers 9
The following sends standard output to the null device (bit bucket).
And if you also want error messages to be sent there, use one of (the first may not work in all shells):
scriptname &>/dev/null scriptname >/dev/null 2>&1 scriptname >/dev/null 2>/dev/null
And, if you want to record the messages, but not see them, replace /dev/null with an actual file, such as:
For completeness, under Windows cmd.exe (where «nul» is the equivalent of «/dev/null»), it is:
Note that ‘&>’ is peculiar to bash (and maybe C shells); Korn and Bourne shells require 2> /dev/null or 2>&1 (to send stderr to the same place as stdout). The Korn shell seems to interpret ‘&>’ as «run the stuff up to & in background, then do the i/o redirection on an empty command».
Note that some commands write directly to the terminal device rather than to standard output/error. To test, put echo foo > $(tty) in a script and run ./test.sh &> /dev/null — The output is still printed to the terminal. Of course this is not a problem if you’re writing a script which uses no such commands.
@l0b0, is there a way to make the script’s (or any other program’s) tty different so that all output is redirected regardless of your example? I know screen and script can do something like that but both are finicky and vary from *nix to *nix.
This will prevent standard output and error output, redirecting them both to /dev/null .
Even though I’m adding this to my gs (GhostScript) command, it still prints out **** Warning: File has a corrupted %%EOF marker, or garbage after %%EOF. Any advice?
An alternative that may fit in some situations is to assign the result of a command to a variable:
$ DUMMY=$( grep root /etc/passwd 2>&1 ) $ echo $? 0 $ DUMMY=$( grep r00t /etc/passwd 2>&1 ) $ echo $? 1
Since Bash and other POSIX commandline interpreters does not consider variable assignments as a command, the present command’s return code is respected.
Note: assignement with the typeset or declare keyword is considered as a command, so the evaluated return code in case is the assignement itself and not the command executed in the sub-shell:
$ declare DUMMY=$( grep r00t /etc/passwd 2>&1 ) $ echo $? 0