QtCreator - 在交互式 bash 中启动外部工具

QtCreator - start external tool in an interactive bash

不久前,我发现您可以让 QtCreator 直接从 IDE 内部调用外部工具,并通过 Tool->External 将各种参数传递给这些工具。我觉得这很方便,但是我目前正在努力解决在交互式 bash 中启动 基于终端的 应用程序的问题。我正在使用 Lubuntu 12.04 和 QtCreator 2.5.2。

通常,您可以通过编写类似

的内容来启动一个带有特定应用程序运行的新交互式bash
$ bash -i -c some_command

-i 是交互模式的参数,-c 告诉 bash 读取后面的字符串作为一些 command/commands。

QtCreator 中用于配置外部工具的对话框有两个对我来说很重要的字段 - ExecutableArguments。第一个指向您要启动的工具,第二个允许您使用一堆参数启动它。但是,这似乎不起作用!我正在尝试添加 htop(一个基于终端的高级任务管理器)以及其他有用的工具。但是,尝试使用 bash 时出现以下问题:

对于

Executable: bash
Arguments: -i -c htop

我明白了

Starting external tool '/bin/bash' -i -c htop

bash: no job control in this shell

Error opening terminal: unknown.

'/bin/bash' finished

对于

Executable: bash
Arguments: htop

Starting external tool '/bin/bash' htop

/usr/bin/htop: /usr/bin/htop: cannot execute binary file

'/bin/bash' finished

这是一条完全正常的错误消息,因为 -c 参数正是在新的 bash.

中启动 htop 所需要的

有趣的是,使用 xterm(这也是 QtCreator 的默认外部终端(尽管起初我的系统上没有它 -_-) 就像一个魅力。如果我为我的 htop-tool

使用以下设置
Executable: xterm
Arguments: -e htop

它在外部 window 运行 xterm.

中打开一个完美工作的交互式 htop

有谁知道如何用 bash 替换 xterm 还是只是我遗漏了什么?我已经很好地设置了我的 bash (即使我没有默认字体和字体大小以及 xterm 中没有选项卡应该是一个足够大的理由不使用它除非有人想手动配置它) 并且真的很想使用它。我也尝试查看 QtCreator 的文档和外部工具 XML 文件,但无法找到足够的信息来解决我的问题。

xterm is a terminal emulator while Bash 是一个 shell。您需要终端仿真器才能 运行 shell 或其他基于文本的应用程序在图形环境中交互。

听起来您有一个从 Bash 开始的预定义终端仿真器的快捷方式。我建议找出哪个终端仿真器(可能是 LXTerminal?)并使用该终端仿真器 运行 htop:

Executable: LXTerminal
Arguments: -e htop

阅读 man page 中的 -e 选项(您的版本文档可能有所不同)。