首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从期望输出中提取模式

从期望输出中提取模式
EN

Stack Overflow用户
提问于 2012-10-20 20:12:58
回答 1查看 286关注 0票数 0

我如何指示期望在流中查找类似于“生成foo-pattern.tgz”的内容并返回模式,以便在将来的命令中使用它?

我发现自己反复执行相同的操作,并希望使用expect实现它们的自动化。我将ssh放到一个系统上,并在其上运行一个脚本来生成一个文件,然后我将该文件从该系统转换到另外两个系统上。

我可以生成ssh并成功地触发文件构建。我不确定如何捕获生成文件的名称来执行副本。脚本输出类似于“生成foo-timestamp.tgz.完成”之类的内容。而且时间戳在运行期间显然是不同的,我不想使用scp (即scp foo-*tgz),因为可能会有陈旧的foo文件(因此是时间戳)。

我是新的期待,仍然是绊脚石的例子和诸如此类的,偶尔仍然需要一些手握。任何建议/帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-01 18:04:47

我不知道我们是否能够捕获模式,但是在这种情况下,我通常所做的是将输出存储在一个变量中,然后使用这个输出。例如,如果send -- "./executeSomeScript\r"将提供一个类似于“生成foo-timestamp.tgz .完成”的输出,我将使用以下命令替换send命令

代码语言:javascript
复制
send -- "output=`./executeSomeScript`\r"
send -- "filename=`echo \$output | awk '{ print \$2 }'\r"

最后

代码语言:javascript
复制
send -- "scp \$filename user@server:path\r"

请注意,转义$是必要的,这样就不会在脚本级别解释它,而是将其发送到远程shell。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12992272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档