【问题标题】:How to access environment variables in an Expect script?如何在 Expect 脚本中访问环境变量?
【发布时间】:2012-10-02 17:45:45
【问题描述】:

我想访问期望脚本中的 PATH 环境变量。

我怎样才能做到这一点?

我的实际脚本是:

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

它的输出是:

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

【问题讨论】:

    标签: environment-variables expect


    【解决方案1】:

    Expect 是Tcl 的扩展。 Tcl通过全局env array访问环境变量:

    send_user "$env(PATH)\n"
    

    【讨论】:

      【解决方案2】:

      您可以通过以下方式使用全局 env 数组:

      $::env(PATH)    
      

      这个概念也适用于过程。

      【讨论】:

        【解决方案3】:

        如果要读取目标 $PATH 变量,则必须转义“$”:

        exp_sent -- echo "\$PATH\r"

        【讨论】:

          【解决方案4】:

          $::env(PATH)$env(PATH) 都运行良好。前者在其他脚本中也可以(如expect -c "...",后者更“编程风格”。

          【讨论】:

            猜你喜欢
            • 2021-12-02
            • 2015-03-11
            • 2019-12-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-03-22
            • 1970-01-01
            • 2018-04-16
            相关资源
            最近更新 更多