Как linux узнает имя моего оборудования? [duplicate]

Основное отличие заключается в обработке ошибок.

В следующем случае сообщается об ошибке

$ /bin/cat < z.txt
-bash: z.txt: No such file or directory
$ echo $?
1

В следующем случае об ошибке не сообщается.

$ cat z.txt | /bin/cat
cat: z.txt: No such file or directory
$ echo $?
0

С bash вы по-прежнему можете использовать PIPESTATUS:

$ cat z.txt | /bin/cat
cat: z.txt: No such file or directory
$ echo ${PIPESTATUS[0]}
1

Но он доступен только сразу после выполнения команды:

$ cat z.txt | /bin/cat
cat: z.txt: No such file or directory
$ echo $?
0
$ echo ${PIPESTATUS[0]}
0
# oops !

Есть еще одно отличие, когда мы используем функции оболочки вместо двоичных файлов. В bash функции, которые являются частью конвейера, выполняются в суб-оболочках (за исключением последнего компонента конвейера, если включена опция lastpipe и bash ] не интерактивный), поэтому изменение переменных не влияет на родительскую оболочку:

$ a=a
$ b=b
$ x(){ a=x;}
$ y(){ b=y;}

$ echo $a $b
a b

$ x | y
$ echo $a $b
a b

$ cat t.txt | y
$ echo $a $b
a b

$ x | cat
$ echo $a $b
a b

$ x < t.txt
$ y < t.txt
$ echo $a $b
x y
1
22.04.2017, 18:50
1 ответ

Имена получены из перевода PCI vendor:device code аппаратного обеспечения с использованием локальной базы данных/текстового файла для текстовых описаний.

Сам файл находится по адресу /usr/share/misc/pci.ids.

В данном случае в Debian 9/Stretch в этом файле вы можете найти:

"Intel Corporation":

[line 19280] 8086  Intel Corporation

Centrino Ultimate....

[line 24449]         422b  Centrino Ultimate-N 6300

Судя по тексту, код вашего PCI vendor:device кажется 8086:422b

4
27.01.2020, 23:19

Теги

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