Как я могу проверить, какую версию Редактора vi я имею?

Посмотрите ниже для сценария, используемого в этих тестах.

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
27
22.10.2011, 01:58
6 ответов

Согласно http://www.vim.org/download.php, Vim Sun Solaris включен в Сопутствующее программное обеспечение: http://wwws.sun.com/software/solaris/freeware/.

vi имел :ve[rsion] команда, возвращающаяся, по крайней мере, до 1979, таким образом, это должно работать над любым выпуском Соляриса.

28
27.01.2020, 19:39
  • 1
    :ve уже действительно существовал в самой первой vi версии, выпущенный 1-го января 1978. См. github.com/n-t-roff/ex-1.1 для исходного кода исходная документация. –  user3224237 12.08.2016, 22:48

Команда для показа версии

:version

который может быть сокращен до

:ve
11
27.01.2020, 19:39
vi --version 

должен сделать это задание :)

-1
27.01.2020, 19:39
  • 1
    Кто-то объясняющий что случилось с этим ответом.Спасибо. –  Paolo 27.10.2011, 21:25
  • 2
    На Солярисе 9, vi --version печать vi: illegal option -- -. vim распознает --version опция;другое vi реализации, включая nvi, не делать. –  Keith Thompson 23.01.2012, 01:10
  • 3
    Также этот ответ не обращается к другой части вопроса: обновление или установка Vim на Солярисе. –  MetaEd 26.06.2012, 18:56

Необходимо попытаться найти vi версия с диспетчером пакетов:

pkginfo | grep -i vi 

или:

pkginfo '*vi*'
4
27.01.2020, 19:39

На Солярисе 11 и более поздние выпуски, энергия является теперь версией по умолчанию vi.

0
27.01.2020, 19:39

Вы можете просто открыть редактор, введя

vi

, это откроет страницу по умолчанию, которая показывает номер версии.

1
27.01.2020, 19:39

Теги

Похожие вопросы