我使用expect脚本登录远程服务器;要这样做,我需要设置2个变量:
set username <user>
set password <passwd>
我grep user
&amp;来自文件的passwd
。如何使用grep ouptut设置expect变量?
当我尝试:
set username "grep '(?<=username:)[^<]*' file"
set password "grep '(?<=password:)[^<]*' file"
期待说:
命令名称无效&#34; ^&lt;&#34; 执行时 &#34; ^&LT;&#34; 从
中调用&#34;发送&#34; grep -oP&#39;(?&lt; = username:)[^&lt;] *&#39;文件&#34;&#34;
(文件&#34; ./ test&#34;第11行)
当我尝试:
set username "grep -oP '(?<=username:)[\^\<]*' file)"
期待说:
无法阅读&#34;(grep -oP&#39;(?&lt; = username:)&#34;:
没有这样的变数 执行时
&#34;发送&#34; $(grep -oP&#39;(?&lt; =用户名:)[\ ^ \&lt;] *&#39;文件)&#34;&#34 ;
(文件&#34; ./ test&#34;第11行)
我只是想知道什么是正确的语法。
答案 0 :(得分:2)
你会想要这样的东西:
set fid [open file r]
set contents [read $fid]
close $fid
lassign [regexp -inline {username:([^<]+)} $contents] x username
lassign [regexp -inline {password:([^<]+)} $contents] x password
你在使用Tcl语法时遇到了困难,所以从Tcl tutorial开始。