2015-02-05 3 views
0

Я новичок в Unix и его разработке. В моем new.sh сценарии я написалПростая простая программа с использованием оболочки unix

$USERNAME=user 
$PASSWORD=sekrit 

echo $USERNAME 

и побежал new.sh с помощью bash new.sh

Но я получаю следующие ошибки

new.sh: line 1: =user: command not found 
new.sh: line 2: =sekrit: command not found 

Как запустить эту команду и напечатать переменное имя пользователя в терминале?

ответ

3

USERNAME - это имя переменной. $USERNAME является заменой (aka contents, aka value). Поскольку USERNAME пуст, вы фактически пытаетесь запустить команду с именем , о чем вам сообщает сообщение об ошибке.

Удалите $ $USERNAME=..., и он будет работать.

+2

Jens спасибо, что это работает. Теперь я знаю, как использовать локальные переменные в скрипте unix –

1

Как Jens отмечает в своей answer, проблема заключается в том, что присваивание переменной не с префиксом $, так:

USERNAME=user 
PASSWORD=sekrit 

является способ, чтобы написать то, что вы хотели. Вы получили сообщение об ошибке, потому что USERNAME не был установлен, поэтому после расширения оболочки посмотрел на команды, как:

=user 
=sekrit 

и он не мог найти такие команды в системе (не очень удивительно). Однако следует помнить, что если вы раньше писали:

USERNAME=archipelago 
PASSWORD=anchovy 

затем строки:

$USERNAME=user 
$PASSWORD=sekrit 

были бы эквивалентно записи:

archipelago=user 
anchovy=sekrit 

Вы могли видеть, что, запустив set без аргументов; он покажет вам значения всех переменных, заданных в оболочке. Вы можете искать такие слова, как USERNAME и архипелаг, чтобы узнать, что произошло.

Теперь вы узнали об этом, забудьте об этом. Количество раз, когда вам нужно использовать его, очень ограничено (но оно очень удобно для тех редких - очень редких случаев, когда вам это нужно).

Для всех практических целей не следует писать $ в левой части задания переменной в оболочке.

+0

большое спасибо –

+1

Добро пожаловать. Вы можете заметить, что даже там, где вы смотрите телевизионные программы (например, в Великобритании и, возможно, в других районах, на которые влияет Великобритания, а не Америка), принято использовать «программу» для компьютерной программы. –

+0

спасибо, чувак. –

Смежные вопросы