如何在unix下将两个命令合并为一个?

时间:2012-05-15 08:03:17

标签: linux unix vim ubuntu

通常我在终端中按类型jdb开始调试java程序,然后它会进入调试模式,然后我可以输入类似“停在com.android.contacts.dirtyImport.DirtyImportManager:95”的内容来告诉jdb停在某一行。

现在问题是:如何将这两个cmds输入组合起来。像“jdb<停在com.android.contacts.dirtyImport.DirtyImportManager:95”之类的东西。我有这个要求的原因是我想让vim自动生成调试信息并进入调试模式,停止make breakpoint。

2 个答案:

答案 0 :(得分:3)

一个选项是在标准输入前加一行:

{ echo "stop at com.android.contacts.dirtyImport.DirtyImportManager:95"; cat; } | jdb

这将启动一个子shell({}),它首先使用echo打印给定行,然后读取标准输入并将读取行打印到标准输出(cat)。整个输入通过管道传输到jdb。

但是,这会混淆一些区分终端输入和管道输入的程序。在这种情况下,您需要查看程序的引用,因为调试器通常支持从文件执行命令(gdb-x)。

答案 1 :(得分:0)

我不确定,但您可能会考虑生成expect脚本。 Here is a tutorial,它与gdb自动化有关。