Задать вопрос
@ksvdon

Можно ли использовать переменную из bash в expect?

Обрисую суть.
На удаленной машине мне надо получить UID пользователя. Потом надо выполнить действия на всё той же удаленной машине используя этот UID. Т.е. его надо получить и как-то сохранить в переменную что бы потом использовать.

запрос вроде этого
send "cat /etc/passwd | grep myuser | awk -F ":" '{print $3}'\r"

не прошел т.к. экранировать надо это "$3" повидимому. И обратный слеш не сгодился.. Решил урезать и сохранить данные в файл что бы потом обработать на своей машине
send "cat /etc/passwd | grep myuser >info.txt\r"
это без проблем. На своей машине могу получить UID но всё же проблема. Его надо вставить так же в команду send "сюда =)" подскажите как вставить переменную. (так же буду рад если подскажите с экранированием что бы файл не копировать попусту)
....
Я так понимаю надо как-то работать с tcl переменными? Но получу цифру я из bash...

********************
ОТВЕТ: в bash делаем export var=12345
потом в самой среде tcl (внутри записи expect):
send "$env(var)\r" (где env - Used for representing the array of elements that are environmental variables.)
синтаксис tcl
www.tutorialspoint.com/tcl-tk/tcl_special_variables.htm
********************
  • Вопрос задан
  • 3418 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@estoy
На удаленной машине мне надо получить UID пользователя. Потом надо выполнить действия на всё той же удаленной машине используя этот UID. Т.е. его надо получить и как-то сохранить в переменную что бы потом использовать.

Если я правильно понял суть вопроса, то записать в переменную результат, можно вот так:
myvar=`cat /etc/passwd | grep myuser | awk -F ":" '{print $3}'\r`
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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