#!/bin/bash
echo 'Введите логин'
read login
echo 'Введите пароль'
read passwd
echo "ap_scan=0
network={
key_mgmt=IEEE8021X
eap=MD5
identity=\""$login"\"
password=\""$passwd"\"
}" > /etc/wpa_supplicant.conf
echo "auto eth0
iface eth0 inet dhcp
wpa-driver wired
wpa-conf /etc/wpa_supplicant.conf" > /etc/network/interfaces
sleep 3
ifdown eth0
sleep 3
ifup eth0
x-www-browser http://kirovnet.ru
exit 0
помогите улучшить bash-скрипт настройки суппликанта
2. Можно ли как-то идентифицировать сетевые карты, к которым подключен кабель, например есть eth0 eth1 , кабель подключен к eth1 и именно на него надо настраивать.
Код:
Т.е. типа
Код:
PINGRES = `ping ya.ru опции`
if [ проверяем PINGRES на соответствие шаблону, хз как ]
#если соответствует шаблону - пинг удался
...
else
#далее травим командный интерпретактор а самих себя ещё раз
bash myscript
fi
if [ проверяем PINGRES на соответствие шаблону, хз как ]
#если соответствует шаблону - пинг удался
...
else
#далее травим командный интерпретактор а самих себя ещё раз
bash myscript
fi
Проверку на соотвествие шаблону можно пытаться сделать регулярками, но неизвестно знает ли о них bash
Код:
ping -с 10 www.kirovnet.ru > /dev/null
if [ $? == 0 ] ; then
# хост доступен
fi
if [ $? == 0 ] ; then
# хост доступен
fi
2. read для пароля лучше использовать с опцией "-s" (вроде не ошибся). Тогда будет подавление символов при вводе.
3. Для формирования файлов также можно использовать конструкцию вида
Код:
(cat << EOF
ap_scan=0
network={
key_mgmt=IEEE8021X
eap=MD5
identity="${login}"
password="${passwd}"
}
EOF
) > /etc/wpa_supplicant.conf
ap_scan=0
network={
key_mgmt=IEEE8021X
eap=MD5
identity="${login}"
password="${passwd}"
}
EOF
) > /etc/wpa_supplicant.conf
для меня - так наглядней
4. Не специалист по настройке wifi, но ESSID может еще надо указать?
5. По поводу цикличности проверки это легко, выбирай на вкус for или while. man bash в помощь
Код:
#!/bin/bash
for i in 1 2
do
echo -n 'Введите логин';
if [$i eq 2]; then
echo '. Возможно, первый раз он был введен неправильно:';
else
echo ':';
fi;
read login
echo -n 'Введите пароль';
if [$i eq 2]; then
echo '. Возможно, первый раз он был введен неправильно:';
else
echo ':';
fi;
read passwd
for i in `seq 0 3`;
do
echo "ap_scan=0
network={
key_mgmt=IEEE8021X
eap=MD5
identity=\""$login"\"
password=\""$passwd"\"
}" > /etc/wpa_supplicant.conf
echo "auto eth$i
iface eth0 inet dhcp
wpa-driver wired
wpa-conf /etc/wpa_supplicant.conf" > /etc/network/interfaces
sleep 3
ifdown eth0
sleep 3
ifup eth0
ping -c 1 -w 5 kirovnet.ru &>/dev/null
if [ $? -eq 0 ]; then
x-www-browser kirovnet.ru;
exit 0;
fi;
done;
done;
for i in 1 2
do
echo -n 'Введите логин';
if [$i eq 2]; then
echo '. Возможно, первый раз он был введен неправильно:';
else
echo ':';
fi;
read login
echo -n 'Введите пароль';
if [$i eq 2]; then
echo '. Возможно, первый раз он был введен неправильно:';
else
echo ':';
fi;
read passwd
for i in `seq 0 3`;
do
echo "ap_scan=0
network={
key_mgmt=IEEE8021X
eap=MD5
identity=\""$login"\"
password=\""$passwd"\"
}" > /etc/wpa_supplicant.conf
echo "auto eth$i
iface eth0 inet dhcp
wpa-driver wired
wpa-conf /etc/wpa_supplicant.conf" > /etc/network/interfaces
sleep 3
ifdown eth0
sleep 3
ifup eth0
ping -c 1 -w 5 kirovnet.ru &>/dev/null
if [ $? -eq 0 ]; then
x-www-browser kirovnet.ru;
exit 0;
fi;
done;
done;