Оболочка Linux Bash для чтения с поддержкой вкладок (\t)

Эта строка указывает местоположение устройства на шине PCI. В «01 :00.0», «01» — это номер шины PCI (компьютеры могут иметь несколько шин PCI ), «00» — это номер устройства, а «0» — это функция в устройстве (. ] устройства могут иметь несколько функций, отдельно адресуемых на шине ).

Шины PCI — это отдельные домены, соединенные мостами. Устройства на одной шине не могут взаимодействовать напрямую с устройствами на другой шине, они должны взаимодействовать через мост. Мосты были необычны в «простых» системах PCI, но в системах PCI Express есть много мостов и шин; каждый слот PCI Express — это отдельная шина. Функции используются в различных ситуациях; например, для интеграции двух устройств в одно устройство PCI (у меня есть HBA-адаптер ATTO SCSI, который делает это ), или для предоставления различных функций с использованием одного устройства PCI (, как правило, чтобы можно было легко подключить несколько драйверов устройств. к индивидуальным особенностям; У меня есть карта DVB -T, которая делает это, выставляя свои аудио, MPEG и ИК-устройства как отдельные функции в одном и том же устройстве PCI ).

Некоторые системы имеют несколько доменов PCI, и в этом случае перед номером ошибки появляется четвертый набор цифр («0000 :01 :00.0» ).

Это описано в конце справочной страницыlspci(8):

Slot

The name of the slot where the device resides ([domain:]bus:device.function). This tag is always the first in a record.

3
15.10.2020, 18:57
2 ответа

Вы всегда можете просто добавить 8 пробелов:

read -p '        hello '

Но да, вы также можете получить фактический символ табуляции:

read -p $'\t''hello '

или

read -p "$(echo -e '\thello ')"

Или

read -p "$(printf '\thello ')"
0
18.03.2021, 22:57

Вы всегда можете использовать форму кавычек в стиле ksh93 -$'...', которая понимает эти управляющие последовательности:

IFS= read -r -p $'\thello ' var

(IFS=и -rне имеют значения, я просто добавляю их здесь, так как вызов readбез них редко имеет смысл ).

Обратите внимание, что -pне является стандартной функцией sh. В ksh/zsh -pпредназначен для чтения из процесса co -, а подсказки задаются с помощью read 'var?Prompt: '. К сожалению, bashрешил ввести здесь несовместимый API. Однако вам не обязательно использовать -p, вы можете просто использовать переносимое:

printf >&2 '\thello '
IFS= read -r var

printfраспознает эти escape-последовательности в своем аргументе формата и аргументах для спецификаторов %b. Распознает ли echoих (или принимает опцию -eдля их распознавания ), зависит от реализации и для многих реализаций (, включая встроенную функцию bash)для времени сборки и настроек времени выполнения, так лучше избегать .

6
18.03.2021, 22:57

Теги

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