Посмотрите ниже для сценария, используемого в этих тестах.
Grep может только воздействовать на stdin, поэтому необходимо преобразовать stderr поток в форме, которую может проанализировать Grep.
Обычно, stdout и stderr оба печатаются на Ваш экран:
$ ./stdout-stderr.sh
./stdout-stderr.sh: Printing to stdout
./stdout-stderr.sh: Printing to stderr
Чтобы скрыть stdout, но все еще распечатать stderr делают это:
$ ./stdout-stderr.sh >/dev/null
./stdout-stderr.sh: Printing to stderr
Но grep не будет воздействовать на stderr! Вы ожидали бы, что следующая команда подавит строки, которые содержат, 'допускают ошибку', но она не делает.
$ ./stdout-stderr.sh >/dev/null |grep --invert-match err
./stdout-stderr.sh: Printing to stderr
Вот решение.
Следующий синтаксис Bash скроет вывод к stdout, но все еще покажет stderr. Сначала мы передаем stdout по каналу к/dev/null, затем мы преобразовываем stderr в stdout, потому что каналы Unix будут только воздействовать на stdout. Вы можете все еще grep текст.
$ ./stdout-stderr.sh 2>&1 >/dev/null | grep err
./stdout-stderr.sh: Printing to stderr
(Обратите внимание, что вышеупомянутая команда отличается затем ./command >/dev/null 2>&1
, который является очень общей командой).
Вот сценарий, используемый для тестирования. Это печатает одну строку к stdout и одну строку к stderr:
#!/bin/sh
# Print a message to stdout
echo "$0: Printing to stdout"
# Print a message to stderr
echo "$0: Printing to stderr" >&2
exit 0
Согласно http://www.vim.org/download.php, Vim Sun Solaris включен в Сопутствующее программное обеспечение: http://wwws.sun.com/software/solaris/freeware/.
vi имел :ve[rsion]
команда, возвращающаяся, по крайней мере, до 1979, таким образом, это должно работать над любым выпуском Соляриса.
Команда для показа версии
:version
который может быть сокращен до
:ve
vi --version
печать vi: illegal option -- -
. vim
распознает --version
опция;другое vi
реализации, включая nvi
, не делать.
– Keith Thompson
23.01.2012, 01:10
Необходимо попытаться найти vi
версия с диспетчером пакетов:
pkginfo | grep -i vi
или:
pkginfo '*vi*'
На Солярисе 11 и более поздние выпуски, энергия является теперь версией по умолчанию vi.
Вы можете просто открыть редактор, введя
vi
, это откроет страницу по умолчанию, которая показывает номер версии.
:ve
уже действительно существовал в самой первой vi версии, выпущенный 1-го января 1978. См. github.com/n-t-roff/ex-1.1 для исходного кода исходная документация. – user3224237 12.08.2016, 22:48