【发布时间】:2014-02-11 22:55:20
【问题描述】:
我已经在这里查看了一些相关的问题和答案,但我仍然很难过:-(
我希望将多字命令从 bash 脚本传递到期望脚本。在expect 脚本中,多字命令将由send 语句执行。
所以,多字命令是:
get dump perf 0
它存储在 bash 脚本中名为 usrcmd 的变量中。
expect 脚本是这样调用的:
./userspecifiedcmd.exp root $password $server $usrcmd
在expect脚本中,多字命令提取如下:
set usercommand [lrange $argv 3 3]
而多字命令执行如下:send "$usercommand\r"
结果...
send语句实际发送的字符串是:get
当我启动期望脚本时,我尝试在 $usrcmd 变量周围加上引号,如下所示:
./userspecifiedcmd.exp root $password $server "$usrcmd"
当我这样做时,send 语句发送的字符串是:{get dump perf 0}
我的直觉告诉我有一个简单的解决方法。我的直觉正确吗?
谢谢!
【问题讨论】:
-
请使用反引号分隔内联代码,并在编辑器中选择并按下
{}键来分隔较大的部分(用\n分隔并在行首添加4个空格)。
标签: bash command-line-arguments expect