web-dev-qa-db-ja.com

Expectスクリプトで環境変数にアクセスする方法は?

Expectスクリプト内でPATH環境変数にアクセスしたいと思います。

どうすればそれを達成できますか?

私の実際のスクリプトは:

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

そしてその出力は:

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

Expectは Tcl の拡張です。 Tclはグローバル env array を介して環境変数にアクセスします:

send_user "$env(PATH)\n"
48
glenn jackman

以下を使用して、グローバル環境配列を使用できます。

$::env(PATH)    

この概念は、プロシージャ内でも機能します。

11
Timmah

ターゲットの$ PATH変数を読み取る場合は、「$」をエスケープする必要があります。

exp_sent-「\ $ PATH\r」をエコー

2
akiuni