Вы на самом деле есть несколько проблем с этим сценарием. главным является то, что IPCONFIG будет выводить «\ r "в конце строки, которая наполняет calcu ляционной.
Другое, что вы не разрешаете использовать несколько сетевых адаптеров, следовательно, мое дополнение "head -1"
. Вам нужно будет выбрать, какой сетевой адаптер вы хотите немного более разумно.
И, наконец, я удалил ведущее пространство (фактически все пробелы) с фронта IP-адреса.
следующие работы для меня:
#!/bin/bash
#set -x
function IPADDRESS {
((v = $4 - 2))
echo $1.$2.$3.$v
}
ADDRESS=$(ipconfig | grep Address | head -1 | cut -f2 -d: | sed 's/[ \r]//g')
echo $ADDRESS
IPADDRESS $ADDRESS
Выведение:
192.168.91.7
192.168.91.5
На самом деле, моя версия выведет следующее:
192.168.91.1
192.168.91.-1
так что вам нужно следить за что.
Я не чужой, чтобы выдумать вывод, чтобы произвести впечатление/управление заданиями :-).
ПОЛЕЗНЫЕ SNIPPET:
"set -x"
в верхней части сценария (когда не-комментировал) идеально подходит для поиска такого рода ошибок. Он выводит каждую строку после всех замещений, но перед выполнением, чтобы вы могли точно видеть, что происходит.