На вашем снимке экрана показано приглашение имени пользователя. У вас должна быть возможность переключиться, как только вы доберетесь до запроса пароля.
Поскольку вы разработали свою функцию без аргументов, вот и все.
Вы читаете значение переменной choice
в основной части скрипта. Эта переменная имеет глобальную область видимости (за неимением лучшего слова ), что означает, что она будет видна и внутри функции.
Обратите внимание, что если бы вы читали значение внутри функции, то переменная по-прежнему имела бы глобальную область видимости и была бы видна за пределами функции (после вызова функции ). Это было бы так, если бы вы не объявили его как local
с local choice
внутри функции.
Для получения дополнительной информации об области видимости переменной оболочки см., например,.
Чтобы передать значение переменной choice
в функцию, используйте
choice_func "$choice"
Затем функция может получить доступ к этому значению в $1
, первом позиционном параметре :
choice_func () {
echo "$1"
}
или
choice_func () {
local choice="$1"
# choice is now local and separate from the variable
# with the same name in the main script.
echo "$choice"
}
Это правильный способ передать значение функции, не полагаясь на глобальные переменные в сценарии оболочки.