scsi_host interconnects

Идем медленно. Если есть файл с таким содержимым (всего в одну строку, чтобы было проще показать):

$ cat infile
list[1]; i[ab1]; var[1] [1]var  [1]var[2]

и

Простой grep --color aпокажет красным цветом все буквы a. (Поскольку этот сайт позволяет управлять цветами :Предположим, что жирный шрифт — красный):

$ grep --color a infile  

list[1]; i[аb1]; vаr[1] [1]vаr [1]vаr[2]

Точно то же самое происходит, если a не -в кавычках (, как указано выше ), или если оно заключено в кавычки:

$ grep --color \a infile  

list[1]; i[аb1]; vаr[1] [1]vаr [1]vаr[2]

$ grep --color "a" infile  

list[1]; i[аb1]; vаr[1] [1]vаr [1]vаr[2]

$ grep --color 'a' infile  

list[1]; i[аb1]; vаr[1] [1]vаr [1]vаr[2]

Почему? Потому что "а" оба:

  1. Не специально для оболочки.
  2. Оболочка удаляет кавычки, и grep получает тот же aв качестве первого аргумента. Либо обратная косая черта, либо двойная кавычка, либо одинарная кавычка.

]

Если мы хотим выделить фигурные скобки ](, начнем с закрывающей скобки):

$ grep --color ] infile  

list[1]; i[ab1]; var[1][1]var [1]var[2]

То же самое произойдет, если ]были процитированы (любой цитатой ).
В этом случае ]является специальным для оболочки, но не в этом случае, когда нет соответствующей открывающей скобки.

Для закрывающей скобки все становится на один шаг сложнее. Все это вызывает ошибку:

grep --color  [  infile
grep --color '[' infile
grep --color "[" infile

Почему? Потому что то, что grep получает в всех случаях, является одним [.
Вы можете понять, что делает оболочка с помощью этого простого эха:

 $ echo \[ "[" '['
 [ [ [

Оболочка удаляет один уровень цитирования, и все значения выглядят одинаково.

[

Но то, что grep хочет получить, чтобы понять, что мы на самом деле ищем символ [, — это квадратная скобка в кавычках с обратной косой чертой(\[).Так и будет со всем этим:

$ echo \\[ "\[" '\['
\[ \[ \[

И grep будет работать с любым из них:

$ grep --color \\[ infile

list[ 1]; i[ ab1]; var[ 1][ 1]var[ 1]var[2]

[[]

Использование[[](списка символов только с одним символом )приведет к тому же результату (, пока он заключен в кавычки ).

$ grep --color '[[]' infile

list[ 1]; i[ ab1]; var[ 1][ 1]var[ 1]var[2]

Grep должен получить ровно [[], чтобы это работало. Может показаться, что кавычки действительно не нужны:

$ echo \[\[\] "[[]" '[[]' [[]
[[] [[] [[] [[]

Но если вы создадите файл с именем [, эта идея сломается:

$ touch \[
$ echo \[\[\] "[[]" '[[]' [[]
[[] [[] [[] [

, потому что [является специальным для оболочки. В оболочке он запускает шаблон подстановки имени файла. Если файл (или несколько )соответствуют шаблону, подставляется список файлов.

Итак, это будет работать правильно:

$  grep --color '[[]' infile

list[ 1]; i[ ab1]; var[ 1][ 1]var[ 1]var[2]

И это:grep --color '[]]' infileбудет соответствовать закрывающей фигурной скобке.

[][]

Чтобы сопоставить открывающую квадратную скобку и закрывающую квадратную скобку, вам нужна определенная последовательность символов (в кавычках, конечно ).

Если вы попробуете это:

$  grep --color '[[]]' infile

Совпадения не будет, вообще никакого. Это нужно для правильной работы:

$ grep --color '[][]' infile

list[1] ; i[ab1] ; var[1 ] [1 ] var[1 ] var[2 ]

В этом конкретном порядке закрывающая фигурная скобка должна быть первым символом внутри диапазона символов.Открывающая фигурная скобка должна быть последним символом в списке символов.

[]a -z0 -9[]

Затем вы можете добавить другие символы (, только не;):

$ grep --color '[]a-z0-9[]' infile

список[1];i[ab1];переменная[1][1]переменная[1]переменная[2]

Затем вы можете добавить отсутствующий |в диапазон и выполнить сопоставление по ссылке, которую вы разместили. Регулярное выражение в этой ссылке не такое, как здесь, и работает совсем по-другому. Он начинается с сопоставления одного [, некоторых других символов и заканчивается закрывающим ]. Что-то похожее на (жадный характер *занимает всю линейку):

$  grep --color '\[.*\]' infile

list[1]; я[аб1]; вар[1] [1]вар[1]вар[2]

Или подобное этому:

$ grep --color '[[][a-c0-9]*[]]' infile

list[1] ; i[ab1]; var[1] [1] var[1] var[2] `

0
12.08.2019, 19:08
1 ответ

По сути, каталоги scsi_host*в /sys/class/scsi_hostsпредставляют все контроллеры памяти, совместимые со SCSI -, которые есть в вашей системе. Каждый отдельный порт контроллера AHCI SATA может быть одним каталогом scsi_host*; совокупность всех USB-накопителей в системе обычно представлена ​​одним каталогом scsi_host*; на серверах с адаптерами SAN iSCSI или FibreChannel каждый порт iSCSI порта FibreChannel может отображаться как каталог scsi_host*.

По сути, поскольку многие протоколы хранения либо основаны на SCSI, либо связаны с ним, представление их всех в виде адаптеров SCSI определяет общий набор основных операций, которые можно выполнять со всеми ними.

На виртуальной машине количество и тип виртуальных контроллеров памяти полностью зависят от конструкции и конфигурации гипервизора виртуализации. Возможно, ваша платформа виртуализации представляет каждый виртуальный диск с отдельным виртуальным контроллером, чтобы при необходимости виртуальный диск можно было -удалить в горячем режиме с минимальным воздействием на другие виртуальные диски.

1
28.01.2020, 02:39

Теги

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