【问题标题】:How to combine two commands into one under unix?unix下如何将两个命令合二为一?
【发布时间】:2012-05-15 08:03:17
【问题描述】:

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

现在的问题是:如何将这两个 cmds 输入一个。类似“jdb

【问题讨论】:

    标签: linux unix vim ubuntu


    【解决方案1】:

    一种选择是在标准输入前添加一行:

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

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

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

    【讨论】:

    • 我可以把这个答案加两次吗?你完全是个天才。我已经搜索了这个答案这么久。但是我还是不知道{ 和 cat 是干什么用的?你能给我一些提示吗?因为在我删除了您的命令的任何部分后,我将无法按我的意愿运行。再次感谢您。
    • @user674199:谢谢。扩展答案。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多