Shell‑скрипты, Ansible, deployment‑сценарии и другие подходы к автоматизации задач администрирования.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
Grenky
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2008-08-21 2:20:36
Непрочитанное сообщение
Grenky » 2008-08-21 2:25:07
Код: Выделить всё
case "$1" in
rdp)
$0 vpn
echo $LALA
// тут надо использовать значение переменной "LALA"
;;
vpn)
LALA="lala"
// тут определятся значение переменной... допустим "LALA"
;;
esac
Ребята подскажите как сделать?
echo $LALA - не работает.
Дело в том, что "LALA" опрееляется не одной строкой, некрасиво повторять его и в "rdp)"
Grenky
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2008-08-21 4:28:18
вынеси определение переменной до case
zg
-
Grenky
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2008-08-21 2:20:36
Непрочитанное сообщение
Grenky » 2008-08-21 5:27:59
перефразируем: как запустить из rdp) vpn) не прибегая к конструкции $0 vpn? т.е. не вызывая дополнительного процесса vpn, т.к. в таком случае переменная между ними не передается.
Grenky
-
--null--
- проходил мимо
Непрочитанное сообщение
--null-- » 2008-08-21 9:46:46
Код: Выделить всё
#!/bin/sh
case "$1" in
rdp)
set vpn
. $0
echo "LALA= $LALA"
;;
vpn)
LALA="lala"
;;
esac
--null--
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2008-08-21 11:16:05
Grenky писал(а):т.к. в таком случае переменная между ними не передается.
не могу понять логику, чего нужно добиться в итоге?
zg
-
Grenky
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2008-08-21 2:20:36
Непрочитанное сообщение
Grenky » 2008-08-22 4:02:40
--null-- 
прямо в точку
to zg:
не могу понять логику, чего нужно добиться в итоге?
скрипт запускает VPN соединение. + у скрипта есть доп ключи.
Код: Выделить всё
пример:
vpn fantom rdp ХХХ
// vpn - название скрипта
// fantom имя конфигурационного файла pptp подключения (/etc/ppp/peers)
// rdp - ключ запуска одновременно и RDP подключения (не обязательный ключ)
// ХХХ - ключ определяющий номер машины к которой осуществляется RDP подключение
Код скрипта:
Код: Выделить всё
#!/bin/sh
case "$2" in
rdp)
set $1 vpn $3
. $0
echo "Try to start rdesktop to addr $MASK.$3"
rdesktop ${MASK}.$3 -u administrator -g 1280x800 -a 16 -f
$0 $1 stop
;;
stop)
echo -n "Stopping vpn: "
poff $1
echo
;;
vpn)
echo -n "Starting vpn: "
pon $1
sleep 6
lolo=`ifconfig | grep "" -c`
lolo=`expr $lolo - 6`
MASK=`ifconfig | grep "" -n | grep $lolo: | awk '{print $3}' | awk -F: '{print $2}' | awk -F. '{print $1"."$2"."$3}'`
lala=`ifconfig | grep $MASK -n -m 1 | awk '{print $1}' | awk -F: '{print $1}'`
lala=`expr $lala - 1`
blabla=`ifconfig | grep "" -n | grep ${lala}: | awk '{print $1}' | awk -F: '{print $2}'`
echo $MASK
route add -net $MASK.0 netmask 255.255.255.0 dev $blabla
;;
*)
$0 $1 vpn
;;
esac
в строке "lolo=`expr $lolo - 6`" цифра
6 определяет количество строк снизу в которой находится маска сети.
Код: Выделить всё
ppp0 Link encap:Протокол PPP (Point-to-Point Protocol)
[b]inet addr:192.168.33.209 P-t-P:192.168.33.201 Mask:255.255.255.255[/b]
ВВЕРХ POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:3
RX bytes:98 (98.0 B) TX bytes:104 (104.0 B)
надеюсь обьяснил

Grenky
-
zg
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Непрочитанное сообщение
zg » 2008-08-22 6:20:38
Grenky писал(а):надеюсь обьяснил
man sh ... и там будет написано, что можно создавать свои функции, которым можно передавать аргументы и получать из них значения... зачем так извращаться

zg