Взгляните на mac80211_hwsim
модуль ядра. Этот модуль имитирует ряд виртуальных «радио» (карт Wi-Fi или phy
с ), которые взаимодействуют друг с другом. Например,
modprobe mac80211_hwsim radios=3
даст вам 3 из них. Используйте iw dev
, чтобы просмотреть их и увидеть их MAC-адреса. Затем вы можете использовать iw
и ip
для их настройки и имитации точки доступа и любого количества клиентов. Вы также получите интерфейс hwsim0
типа ieee802.11/radiotap
, и вы можете запустить wireshark
на нем, чтобы увидеть сообщения, которые проходят через "виртуальный" эфир.
Если программное обеспечение, которое вы используете на беспроводных сетевых интерфейсах, не может привязываться к определенным интерфейсам, подумайте о том, чтобы поместить его в сетевое пространство имен для каждого клиента.
Предполагая переменную среды, поскольку test-ing
не является допустимым именем переменной оболочки, вы можете использоватьprintenv
:
% env foo-bar=baz printenv foo-bar
baz
Или Перл:
% env foo-bar=baz perl -e 'print $ENV{"foo-bar"}'
baz
Или другие инструменты, такие как Python и т. д.
В оболочкеrc
или ее производных (es
,akanga
)в имени переменной можно использовать что угодно.
Все переменные также экспортируются в среду.
Однако в клоне Байрона Ракитциса rc
для Unix (, из которого es
/ akanga
происходят ), в отличие от порта из plan9rc
(теперь общедоступен с тех пор, как plan9 был выпущен как FLOSS ), обратите внимание, что для тех, которые содержат символы вне a-zA-Z0-9_
или последовательности из двух или более символов подчеркивания, при экспорте/импорте из среды используется кодирование/декодирование:
$ rc
; foo-bar = baz
; echo $'foo-bar'
baz
; printenv foo-bar
; env | grep foo
foo__2dbar=baz
У Байрона rc
также нельзя использовать переменную с пустым именем:
; '' = 1
rc: zero-length variable name
Такие вещи, как 1 = foo
или * = (foo bar)
, работают, но они задают позиционные параметры, а не переменные.