Мне нужны некоторые спецификации и данные из числа латопов в ini-файле. Когда я пытаюсь получить IP-адрес с ip addr list <interface>
, в скрипте ничего не происходит. Даже не ошибка.
Я пытаюсь цитировать вещи в своем коде. Ничего не меняется.
for w2 in /sys/class/net/wl*
do
w2i=$(basename $w2)
echo $w2i
addr=$(ip -o -4 addr list $w2i | awk '{print $4}' | cut -d/ -f1)
echo $addr
echo -e "$w2i=$addr"
done
Думаю, возможно, это из-за Varibales, но это также не работает (интерфейс установлен «вручную»):
for w2 in /sys/class/net/wl*
do
w2i=$(basename $w2)
echo $w2i
addr=$(ip -o -4 addr list wlp3s0 | awk '{print $4}' | cut -d/ -f1)
echo $addr
echo -e "$w2i=$addr"
done
Когда я запускаю скрипт, я получаю wlp3s0
и я должен закрыть скрипт ctl-c. Когда я запускаю ip -o -4 addr list wlp3s0 | awk '{print $4}' | cut -d/ -f1
, он дает мне свой IP-адрес, как я и ожидал.
РЕДАКТИРОВАТЬ
Мне просто нужно записать полный путь команды ip
,Может кто-нибудь объяснить, почему я должен это сделать? И особенно это не обязательно для cut
или awk
, которые также основаны на /usr/bin/
?
for w2 in /sys/class/net/wl*
do
w2i=$(basename $w2)
echo $w2i
addr=$(/usr/bin/ip -o -4 addr list "$w2i" | awk '{print $4}' | cut -d/ -f1)
echo $addr
echo -e "$w2i=$addr"
done
}