Итак, вы сказали, что есть внутренний переключатель. У вас есть доступ к управлению этим переключателем? Либо по I2C (встроенный коммутатор), либо по SNMP?
Вы утверждаете, что ваша встроенная ОС запускает DHCP-сервер. Если клиент делает запрос DHCP, разве это не доказательство того, что клиент присутствует и доступен?
Я понятия не имею, что вы подразумеваете под «умным» и «исходящим». Если машина с Windows вообще собирается обмениваться данными по сети Ethernet, она должна отвечать на ARP. Пока что арпинг кажется лучшим вариантом.
Использование обратных кавычек является неправильным :, поскольку строка будет пытаться выполниться как внешняя команда. Но строка представляет собой специфическую команду bash и должна выполняться в контексте текущей оболочки.Есть 2 способа сделать это:
используйте eval
с подстановкой команд
gaps=$( your_python_command )
eval "$gaps"
# or, the variable is unnecessary:
eval "$( your_python_command )"
использовать source
с Замена процесса
source <( your_python_command )
В обоих случаях вам лучше убедиться, что вы знаете, что выводит скрипт Python :вы не хотите выполнять какой-либо ненадежный код.
Вы можете использовать команду set -x
для отладки. Возьмите приведенный ниже пример:
set -x
declare -A gaps=( [2017-02-11]=4 )
Дам тебе:
+ gaps=([2017-02-11]=4)
+ declare -A gaps
И
s="declare -A gaps=( [2017-02-11]=4 )"
$s
Дам вам:
+ declare -A 'gaps=(' '[2017-02-11]=4' ')'
Итак, вы можете видеть, что во втором случае выполняются следующие команды::
declare -A 'gaps=('
declare -A [2017-02-11]=4
declare -A )