Подтвердить что ты не робот

Как получить доступ к переменным среды в Expect script?

Я хотел бы получить доступ к переменной среды PATH внутри ожидаемого script.

Как я могу это достичь?

Мой фактический script:

#!/usr/bin/expect
set timeout 300
send "echo $PATH\r"

и его выход:

can't read "PATH": no such variable
    while executing
"send "echo $PATH\r""
4b9b3361

Ответ 1

Ожидание - это расширение Tcl. Переменные окружения Tcl через глобальный массив env:

send_user "$env(PATH)\n"

Ответ 2

Вы можете использовать глобальный массив env, используя:

$::env(PATH)    

Это понятие также будет работать внутри процедур.

Ответ 3

Если вы хотите прочитать целевую переменную $PATH, то вам нужно избежать "$":

exp_sent - echo "\ $PATH\r"