Мои функции скрипта не работают правильно

244
Purpe_Fedora

Ссылка на мой скриптЯ работал над сценарием, чтобы помочь мне настроить мой компьютер после чистой установки, и по большей части он работал относительно гладко, но случайно я обнаружил, что сценарии bash могут содержать функции, и я был в восторге! Естественно, я попробовал это на одном из моих более сложных сценариев и вместо того, чтобы работать так, как должен, я получил странные результаты. Имейте в виду, я не встречал никаких явных ошибок, скорее, результаты совершенно неожиданны. Например, я поместил один из результатов, полученных при отключенной беспроводной карте, и после вызова функции репо (мой полный сценарий показан в приведенной выше ссылке) пропускает команду на копирование файлов и переходит прямо к вопросу, хочу ли я установить мою беспроводную карту, которая никогда не вызывалась ни в одной из функций, которые должны были быть вызваны. Я привел результат моего примера ниже, но весь сценарий работает не так, как должен, ни при каких условиях. Пожалуйста, помогите, потому что я в растерянности. Я использую Fedora 24 64 bit и буду рад предоставить любую другую необходимую информацию или файлы, которые не включены в этот вопрос.

 This script operates under the impression that you have an active internet connection. connect: Network is unreachable We have found that there is no active internet connection available. Wel will troubleshoot the issue. Your wireless card is inactive, do you wish to try run the install for it? Y/N  n Checking the status of your ethernet card.  We found that your ethernet card is active, checking internet connection. connect: Network is unreachable We cannot find an active internet connection. Please connect to the network then try again? Y/N 
1
Вы уверены, что ваша логика Y / N в CopyRepoFiles верна? есть оператор копирования под Y, но он переходит прямо к TestInternet на N. на основании предложения "уже скопированы файлы репо?" это кажется отсталым. Frank Thomas 8 лет назад 0
Спасибо за то, что вы поняли это, и я только что исправил это, но это не меняет странных результатов, которые я получаю в долгосрочной перспективе. Например, он пропускает прямо к выполнению сценария меню вместо проверки интернет-соединения и обновления. Purpe_Fedora 8 лет назад 0
Хм, я не знаю, как вы получили 11. Эта линия предназначена для проверки подключения к интернету. Я полагаю, что могу попробовать это, но если я случайно не изменил каждую задачу, они будут копией и вставкой оригинального сценария, который прекрасно работал без функции. Теперь, когда я думаю об этом, как вы думаете, мне следует переписать это с помощью функций, потому что что-то могло быть потеряно при преобразовании? Или это перебор? Purpe_Fedora 8 лет назад 0
Возможно, вы захотите посмотреть [Как отлаживать bash-скрипт?] (Http://unix.stackexchange.com/q/155551/80216) G-Man 8 лет назад 0
Я протестировал ваш скрипт в своей среде (Debian Wheezy x86, выпуск Bash 4.2.37 (1) -релиз) и после ввода `Y` на первый вопрос меня спросили:` Файлы репозитория уже были скопированы? Y / N`. Итак, либо есть ошибка в вашей версии оболочки Bash, либо что-то не так с ее конфигурацией. Larssend 8 лет назад 0
это должен быть второй вопрос ... или, по крайней мере, это было мое намерение. В следующий раз, когда я буду на своем компьютере, я вставлю оригинальный скрипт, чтобы вы могли увидеть, что он должен делать. Purpe_Fedora 8 лет назад 0
Как и было обещано, здесь есть ссылка на [мой оригинальный файл скрипта] (http://pastebin.com/AmKgPM5j). Надеюсь, это поможет устранить любую путаницу. Purpe_Fedora 8 лет назад 0

0 ответов на вопрос

Похожие вопросы