Код: Выделить всё
#!/bin/bash
MENU()
(clear
echo SELECT MAP:
echo
echo "1) Odessa"
echo "2) Simferopol"
echo "3) Alushta"
echo
echo "Enter map number"
echo "Enter 'E' for Exit"
read n
case $n in
1) sel_map="Odessa";;
2) sel_map="Simferopol";;
3) sel_map="Alushta";;
E|e) clear; echo "Exit from script"; sleep 1; exit;;
*) clear; echo "Incorrect map number; sleep 2; MENU;;
esac
# проверка переменной sel_map внутри функции MENU
echo "sel_map = $sel_map"
)
MENU
# проверка переменной sel_map за пределами функции MENU
[b]echo "sel_map = $sel_map"[/b]
.......Почему то внутри функции переменная sel_map корректно выводиться на экран, а во втором случае на экран выводиться пустое значение. На сколько я знаю так должна себя вести локальная переменная, если перед ней поставить local (в моем случае например local sel_map="..."), но у меня local не стоит.
Что я не так делаю? Как эту переменную сделать глобальной?
P.S. Извините если вопрос глупый, это мой первый опыт написания скрипта под линукс, заранее спасибо.