How to access environment variables in an Expect s

2019-03-17 05:05发布

I would like to access the PATH environment variable inside an expect script.

How can I achieve that ?

My actual script is :

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

and its ouput is :

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

3条回答
男人必须洒脱
2楼-- · 2019-03-17 05:27

You can use the global env array by using:

$::env(PATH)    

This notion will also work inside procedures.

查看更多
叛逆
3楼-- · 2019-03-17 05:27

If you want to read the target $PATH variable, then you must escape the "$" :

exp_sent -- echo "\$PATH\r"

查看更多
姐就是有狂的资本
4楼-- · 2019-03-17 05:35

Expect is an extension of Tcl. Tcl access enviroment variables via the global env array:

send_user "$env(PATH)\n"
查看更多
登录 后发表回答