itgraine
@itgraine

Записать значение команды bash в переменную?

Здравствуйте!
Пытаюсь записать ip адрес сетевого адаптера в переменную и потом полученный ip адрес вставить в файл, вот сам скрипт

#!/bin/bash
PATH=/etc/3proxy:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
echo -e "AT^RESET\r\n" >/dev/ttyUSB2
killall 3proxy
sleep 20
echo -en 'AT^NDISDUP=1,1,"internet.tele2.ru"\r\n' > /dev/ttyUSB2
#IP=`ip addr show wwp0s6u2i1 | grep -oP `inet \K\S[0-9.]+``
ip=$(ip addr show wwp0s6u2i1 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)
echo "" > /etc/3proxy/3proxy.cfg
cat > /etc/3proxy/3proxy.cfg << END
monitor /etc/3proxy/3proxy.cfg
daemon
timeouts 1 5 30 60 180 1800 15 60
maxconn 5000
nscache 65535
log /dev/null
flush
proxy -n -a -p8000 -i192.168.1.55 -e$ip
END
/usr/bin/3proxy /etc/3proxy/3proxy.cfg


Если я вставляю команду в консоль то она возвращает ip адрес адаптера, т.е сама команда работает

ip addr show wwp0s6u2i1 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1


Но если запускаю скрипт то переменная в которую записывается результат почему то пустая.
Пробовал создавать переменную с текстовой строкой, значение переменной передается, но вот именно значение этой команды не передаются.

По идее на выходе файл должен выглядеть так

monitor /etc/3proxy/3proxy.cfg
daemon
timeouts 1 5 30 60 180 1800 15 60
maxconn 5000
nscache 65535
log /dev/null
flush
proxy -n -a -p8000 -i192.168.1.55 -e(Тут должен быть ip из переменной)


Подскажите пожалуйста в чем может быть проблема?
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 3
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
echo -en 'AT^NDISDUP=1,1,"internet.tele2.ru"\r\n' > /dev/ttyUSB2

Эта команда чтобы установить соединение? А к моменту вызова команды ip=$(ip addr show wwp0s6u2i1 ... оно уже успевает установиться и интерфейс получает ip-адрес?
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
build engineer
А как вы определяете что переменная пустая?

echo "" > /etc/3proxy/3proxy.cfg
Тут вы ничего в файл не пишете
Ответ написан
AlexeyKolodchenko
@AlexeyKolodchenko
sudo cat /dev/ass | grep “the Adventure”
Оберните свою переменную в кавычки; -e"$ip"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы