Вы можете выйти из сценария в любом месте, используя ключевое слово exit
. Вы также можете указать код выхода, чтобы указать другим программам, что или как ваш скрипт не удался, например exit 1
или exit 2
и т. Д. (По соглашению, код выхода 0 предназначен для успеха, а все, что больше 0, означает сбой; однако, также по соглашению, коды выхода выше 127 зарезервированы для ненормальное завершение (например, сигналом)).
Общая конструкция для выхода при отказе -
if [ failure condition ]; then
exit n
fi
с подходящим условием отказа
и n
. Но в определенных сценариях можно поступить иначе. Теперь для вашего случая я интерпретирую ваш вопрос, что если какой-либо из пяти вызовов gksu
завершится неудачно, вы хотите выйти. Один из способов - использовать такую функцию
function try_command {
for i in 1 2 3 4 5 ; do
if gksu command ; then
return 0
fi
fi
exit 1
}
, а затем вызвать цикл с помощью try_command
.
Есть (более) продвинутые или изощренные способы ответа на ваш вопрос. Однако вышеприведенное решение более доступно новичкам, чем, скажем, решение Стефана.
У меня была почти такая же проблема. После возни с airmon -ng я не смог подключиться ни к одной сети. Даже значок сетевого менеджера исчез с панели задач (KDE ). Если бы я проверил iwconfig
, я бы увидел eth0, lo и wlan0mon вместо просто wlan0. Делать:
ifconfig wlan0 up
только что сказал мне, что такого устройства не существует. Это подсказало мне, как потенциально исправить режим.
Вот команды, которые восстановили мой доступ в интернет:
Сначала перезапустите сетевой менеджер:
service NetworkManager restart
(Служба диспетчера сети может называться Network -Manager)
Давайте посмотрим, что делает ваш беспроводной адаптер:
iwconfig
(Он может называться как-то вроде wlan0mon вместо wlan0, что указывает на то, что он все еще находится в режиме мониторинга)
Поскольку он все еще находится в режиме мониторинга, давайте снова включим нормальный режим:
airmon-ng start wlan0 7
(Последнее число — это номер канала, и его, вероятно, можно опустить)
Теперь остановим интерфейс мониторинга:
airmon-ng stop wlan0mon
И, наконец, давайте снова включим ваш обычный сетевой адаптер:
ifconfig wlan0 up
Проверьте наличие нормального адаптера сейчас:
ifconfig
(Больше не должен отображаться эквивалент «mon», вместо этого должен отображаться wlan0 или как-то так, как называется ваш адаптер в обычном режиме)
Теперь вы можете использовать приложение диспетчера сети для повторного подключения к сети для просмотра.
Не знаю, почему я не видел этого решения. Большинство в конечном итоге перезагружается, чтобы вернуться в нормальный интернет-режим.