Как Jens отмечает в своей answer, проблема заключается в том, что присваивание переменной не с префиксом $
, так:
USERNAME=user
PASSWORD=sekrit
является способ, чтобы написать то, что вы хотели. Вы получили сообщение об ошибке, потому что USERNAME не был установлен, поэтому после расширения оболочки посмотрел на команды, как:
=user
=sekrit
и он не мог найти такие команды в системе (не очень удивительно). Однако следует помнить, что если вы раньше писали:
USERNAME=archipelago
PASSWORD=anchovy
затем строки:
$USERNAME=user
$PASSWORD=sekrit
были бы эквивалентно записи:
archipelago=user
anchovy=sekrit
Вы могли видеть, что, запустив set
без аргументов; он покажет вам значения всех переменных, заданных в оболочке. Вы можете искать такие слова, как USERNAME и архипелаг, чтобы узнать, что произошло.
Теперь вы узнали об этом, забудьте об этом. Количество раз, когда вам нужно использовать его, очень ограничено (но оно очень удобно для тех редких - очень редких случаев, когда вам это нужно).
Для всех практических целей не следует писать $
в левой части задания переменной в оболочке.
Jens спасибо, что это работает. Теперь я знаю, как использовать локальные переменные в скрипте unix –