Командная строка Linux, которая перестанет работать, если какой-либо стандарт будет произведен

Можно установить драйверы Nvidia следующим образом.

Установка nvidia-glx (метапакет) и источник драйвера ядра (nvidia-kernel-source), Это кажется, что Вы захотите получить их от нестабильного или экспериментального.

Затем можно создать двоичное использование модуля ядра module-assistant. Во-первых, установка module-assistant. Затем

m-a

дает Вам интерактивный режим.

  • ОБНОВЛЕНИЕ первого показа и ГОТОВИТСЯ
  • Войдите в ВЫБОР и выбор nvidia-kernel.
  • Затем выполненная СБОРКА и затем УСТАНАВЛИВАЕТ.

Удостовериться xorg.conf ссылки nvidiaв разделе устройства. Т.е.

Section "Device"
    Identifier     "nVidia Corporation G70 [GeForce 7300 GS]"
    Driver         "nvidia"
    BusID          "PCI:02:00:0"
5
07.03.2013, 01:07
3 ответа

Это grep Вы ищете:

if svn ... 2>&1 | grep '^'; then
  echo "there was some output"
else
  echo "there wasn't"
fi

Можно заменить grep '^' с grep . или grep '[^[:blank:]]' проверять на непустые или непустые строки (но это удалит пустые/пустые из вывода).

(обратите внимание, что поведение будет варьироваться через grep реализации, если бы вход содержит нетекстовые данные как байты NUL или слишком длинные или ненагруженные линии (которого не произошло бы для svn хотя)).

9
27.01.2020, 20:35
  • 1
    Канал не передает stderr по каналу, только stdout. Необходимо добавить 2> &1 перед | для перенаправления stderr к stdout. –  Martin Tournoij 06.03.2013, 14:08
  • 2
    @Carpetsmoker, хорошо, я пропустил ту часть требований. Отредактированный теперь. –  Stéphane Chazelas 06.03.2013, 14:13
  • 3
    мне нравится идея grep '^ '. Однако это возвращается 0 = успех, когда это действительно находит вывод и 1 = ошибка, когда это не делает :) Мне нужно это, чтобы быть наоборот. Существует ли дальнейшая команда, которая может зеркально отразить / инвертируют код возврата? –  David B 08.03.2013, 12:47
  • 4
    Использовать !. ! svn | grep. Или svn | { ! grep; } –  Stéphane Chazelas 08.03.2013, 14:09
  • 5
    Прекрасный. Отмеченный как ответ с моей благодарностью. –  David B 13.03.2013, 00:22

Я не знаю об одной существующей команде... самокрутка, не приемлемая? Обертка? кладите вывод для первого удара в файл и выход на основе того, пуст ли файл от нет?

Подход обертки, принимая Вас все еще хочет видеть вывод и сохранить stdout и stderr отдельными в выводе.

#!/bin/bash

TMPFILE=/tmp/allout.$$
TMPPIPE=/tmp/errout.$$
SAVERC=/tmp/saverc.$$

cleanup() {
   [ -p $TMPPIPE ] && rm $TMPPIPE
   [ -f $TMPFILE ] && rm $TMPFILE
}
trap cleanup EXIT

# Set up output/display of std err
[ -p $TMPPIPE ] || mkfifo $TMPPIPE
cat $TMPPIPE | tee -a $TMPFILE1 >&2 &

(eval "$*" 2>$TMPPIPE
echo $? > $SAVERC
) | tee -a $TMPFILE

[ -s $TMPFILE ] && exit 1
exit $(cat $SAVERC)
1
27.01.2020, 20:35
  • 1
    Не моется после себя, не будет работать, если выполняется дважды (параллельно, или даже последовательный). –  Martin Tournoij 06.03.2013, 13:28
  • 2
    Действительно, я обновлю его. –  Johan 06.03.2013, 13:58
  • 3
    "Обертка" сохранит код возврата от команды. Если это не желаемый эффект, можно заменить последнюю команду "выходом 0", чтобы указать, что "Никакой вывод не обнаружил" –  Johan 06.03.2013, 14:10

Можно использовать wc считать символы в выводе.

$ [ $(ls 2>&1 | wc -c) = "0" ]
$ echo $?
1
$ [ $(echo -n '' 2>&1 | wc -c) = "0" ]
$ echo $?
0

2>&1 требуется, чтобы перенаправлять stderr к stdout.

0
27.01.2020, 20:35
  • 1
    я не вижу, что большинство программ производит символ новой строки, если они намеренно не печатают что-то. –  Johan 06.03.2013, 14:01
  • 2
    Спасибо, Вы правы, я не уверен, почему я думал это... Вероятно, автоновая строка эха, которая смутила меня. –  Martin Tournoij 06.03.2013, 14:05
  • 3
    Так, почему точно этот downvoted? Я пропускал что-то, потому что это походит на хорошее решение меня... Просветите меня, :-) –  Martin Tournoij 07.02.2014, 07:46
  • 4
    Хорошая идея, +1 справедливость создания против не явившихся на выборы избирателей, которые не прокомментировали. –  jperelli 13.04.2015, 16:25

Теги

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