LINUX.ORG.RU

Как связать вывод команды с if-then?

 ,


0

4

Привет всем! Нужно, чтобы скрипт проверял наличие 2-х слов в выхлопе команды lspci | egrep -i «vga|3d». Нужно что-то примерно такое:

lspci | egrep -i "vga|3d"
if [ nvidia intel ]
then
echo "nvidia optimus"
else
echo "standard driver"
fi
но это проверяет слова nvidia и intel только в файле, в котором это прописано. Нужно как-то связать конструкцию if с выводом команды. На худой конец сделать так:
lspci | egrep -i "vga|3d" > file
а потом, чтобы if проверял слова в ЭТОМ файле, а не в файле самого скрипта. Спасибо зарнее!



Последнее исправление: Max0n (всего исправлений: 1)

Если я правильно понял.

if lspci | egrep -i "vga|3d" | egrep -q '(nvidia|intel)' ; then
  echo "nvidia optimus"
else
  echo "standard driver"
fi

deadskif
()
OUTPUT=$(lspci ... | grep ...)
case "$OUTPUT" in
*nvidia*) echo "nvidia optimus" ;;
*intel*) echo "standard deliver" ;;
esac

... но я так толком не понял, чего ТС хочет

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 2)
Ответ на: комментарий от deadskif
if lspci -d ::300 |awk 'BEGIN{IGNORECASE=1}/nvidia/{n=1}/intel/{i=1}END{exit!(n&&i)}';then
  echo nvidia optimus
else
  echo standard driver
fi
anonymous
()
Ответ на: комментарий от anonymous

Пардон, не заметил

lspci | grep -i "vga\|3d" | grep -i intel | grep -iq nvidia && echo "nvidia optimus" || echo "standard driver"
Disova
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.