Функция может отображать значение, которое не было получено на вход

На вашем снимке экрана показано приглашение имени пользователя. У вас должна быть возможность переключиться, как только вы доберетесь до запроса пароля.

0
09.04.2020, 17:42
2 ответа

Поскольку вы разработали свою функцию без аргументов, вот и все.

0
28.04.2021, 23:18

Вы читаете значение переменной 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"
}

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

3
28.04.2021, 23:18

Теги

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