Сергей В. пишет:[$gw2=$current]
здесь ошибка.
Пожалуйста 2 простых правила:
1. пробелы в bash'е (не) ставят не только и не столько для красоты, они служат разделителем. Вы пробелов не поставили, потому $gw2=$current это ОДНА лексема. А [ ждёт три. (точнее 4 - ещё закрывающую скобку). Правильно так
тут команда [ получила свои 4 лексемы, как и ожидала.
2. А если какая-то переменная пуста? Мы опять получаем не 4 лексемы, а меньше(или наоборот больше, если в переменных есть пробелы, и они не пусты, или получим неверный результат, ибо 2 пробела равны одному). Используйте двойные кавычки:
Вот это уже вполне рабочая команда. Ещё лучше юзать одиночные, но в них переменные не работают ($ воспринимается как обычный знак)
Из правила 1 есть исключение, которое только подтверждает правило. Это инициализация. Она пишется одной лексемой, без всяких пробелов. Ибо единая конструкция. И без начального $, ибо тут не значение переменной используется, а только её имя. Значение теряется.
Если не получается воспользоваться правилом 2 - используйте конкатенацию строк - две строки записанные слитно воспринимаются как единая лексема:
тут сцепка трёх строк слитно. Это одна лексема - строка.
1. сама структура программы непродуманная. Нарисуйте блок-схему что-ли... Зачем тут вообще exit?
2. exit 0 нужно писать тогда, и только тогда, когда вы ЛЮТО, БЕШЕНО УВЕРЕНЫ, что надо именно 0. Вы уверены? Тогда ничего не пишите. А вдруг не ноль?
Вообще выходить из подпрограммы по exit - моветон. Выходить надо по коду возврата. Кстати о кодах возврата:
0..63 зарезервированы за системой. Системные утилиты возвращают коды с таким значением.
128..255 возвращаются тогда, когда программа была прервана. Код зависит от прервавшего сигнала. (можно по нему понять, было-ли это делением на ноль, или скажем CTRL+C).
вам остаются коды 64..127 Ну и код 0 конечно == "всё хорошо".
тут тоже ошибка - while это оператор проверки условия, ему нужна ещё одна лексема - для проверки. Например можно написать так
Если цикл у вас вправду бесконечный. (хотя вообще говоря он конечный, ибо часто требуется ещё и корректно положить Сеть, а не только её переключать. При завершении работы.)
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)