lshw
— это программа, в которой перечислены сведения обо всем доступном оборудовании. Вы можете просто запустить его и направить вывод на пейджер, такой как less
, чтобы просмотреть и найти весь вывод, или, если вы уже знаете, какие разделы вас интересуют, вы можете выборочно вывести «класс», в ваш случай lshw -class network
, который покажет вам подробную информацию о любом существующем сетевом оборудовании, в том числе о любом адаптере Wi-Fi (s ).
В вашем примере позиционные параметры не содержат двойных кавычек:
./script1 a "bc d"
Двойные кавычки просто указывают оболочке, что не следует выполнять разбиение слов на пробел между bc
и d
.
Если вы хотите, чтобы ваш второй параметр содержал литеральные кавычки, вам нужно экранировать их, чтобы указать оболочке, что они литералы:
./script1 a '"bc d"'
или
./script1 a \"bc\ d\"
Вы можете использовать printf
для печати их в формате, который можно повторно использовать в качестве ввода оболочки (с экранированием):
$ set -- a "bc d"
$ printf '%q\n' "$@"
a
bc\ d
Как вы можете видеть, это только выходит за пределы пробела.
Как объяснялось в другом месте, вводимые вами двойные кавычки указывают оболочке, что заключенный в них текст следует рассматривать как одно слово. Если вы хотите распечатать слова, заключенные в кавычки, это довольно просто; вам просто нужно включить их в текст, который вы выводите:
#!/bin/bash
printf '"%s" ' "$@"
printf "\n"
Обратите внимание, что это добавит двойные кавычки к каждому аргументу, а не только к тем, которые могли быть в них при выполнении команды.