Копирование корпоративной почты из необходимого OU в Label

Правильно, что сценарии с исходными текстами и исполняемыми сценариями используют return vs. exit, чтобы сохранить тот же сеанс открытым, как отмечали другие.

Вот связанный совет, если вы когда-нибудь захотите сценария который должен держать сеанс открытым независимо от того, был ли он получен.

Следующий пример может быть запущен прямо как foo.sh или получен как . foo.sh / source foo.sh. В любом случае он будет держать сессию открытой после «выхода». Строка $@ передается так, чтобы функция имела доступ к аргументам внешнего скрипта.

#!/bin/sh
foo(){
    read -p "Would you like to XYZ? (Y/N): " response;
    [ $response != 'y' ] && return 1;
    echo "XYZ complete (args $@).";
    return 0;
    echo "This line will never execute.";
}
foo "$@";

Результат терминала:

$ foo.sh $ Хотели бы вы к XYZ? (Y / N): n $. foo.sh $ Хотели бы вы XYZ? (Y / N): n $ | (окно терминала остается открытым и принимает дополнительный вход)

Это может быть полезно для быстрого тестирования изменений сценария в одном терминале, сохраняя при этом кучу кода скрапа под основным exit / return пока вы работаете. Это также может сделать код более переносимым в некотором смысле (если у вас есть множество сценариев, которые могут или не могут быть вызваны по-разному), хотя это гораздо менее неудобно использовать return и exit там, где это необходимо.

1
задан Владислав Рыбальченко 27 February 2019 в 16:23
поделиться