Anna_Repina
@Anna_Repina
Хочу все знать

Как записать вводимые данные из read -p в переменную?

Не отрабатывает

#!/bin/bash
read -p "please input first MAC:      " $A
echo $A
read -p "please input second MAC :   "$B
$A >>maclist.txt
$B>>maclist.sh
./eeupdate64e -nic=2 -mac=$A
./eeupdate64e -nic=3 -mac=$B


Не записывает вводимые данные в переменную

пробовала и такие конструкции:

A=`read -p "please input first MAC: `
read -p "please input first MAC: " &&$A
read -p "please input first MAC: $A"


Как исправить?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
для присваивания значения не нужно указывать доллар перед переменной. Доллар означает обращение к значению.
read -p "please input first MAC: " A

Теперь копнем чуть глубже, почему не выдает синтаксическую ошибку:
Баш работает следующим образом. Сперва происходит bash expansion - подставляются значение переменных, раскрываются скобки, маски файлов, и так далее- создание окончательной командной строки, а уже потом происходит ее выполнение.
В данном случае $A еще не задана, она пустая, поэтому на этом месте подставится пустое значение и выполнится команда
read -p "please input first MAC: "
В ней нет синтаксических ошибок. Просто если не указывать имя переменной, то read по умолчанию прочитает значение в переменную $REPLY
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@xibir
read -p 'Enter something: ' a
echo $a
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы