前段时间我发现您可以直接从IDE中调用QtCreator调用外部工具,并通过工具 - >外部将各种参数传递给它们。我发现这非常方便,但我目前正在努力解决在交互式bash中启动基于终端的应用程序的问题。我正在使用Lubuntu 12.04和QtCreator 2.5.2。
通常,您可以通过编写类似
的内容来启动一个新的交互式bash,其中包含运行在其中的特定应用程序$ bash -i -c some_command
-i是交互模式的参数,-c告诉bash读取后面的字符串作为一些命令/命令。
在QtCreator中配置外部工具的对话框有两个字段,在我的例子中很重要 - 可执行文件和参数。第一个指向您要启动的工具,第二个允许您使用一堆参数启动它。然而,这似乎不起作用!我尝试添加 htop (基于终端的高级任务管理器)以及其他有用的工具。但是,尝试使用bash时出现以下问题:
有关
Executable: bash
Arguments: -i -c htop
我得到了
启动外部工具' / bin / bash' -i -c htop
bash:此shell中没有作业控制
打开终端时出错:未知。
' /斌/庆典'完成
有关
Executable: bash
Arguments: htop
启动外部工具' / bin / bash' HTOP
/ usr / bin / htop:/ usr / bin / htop:无法执行二进制文件
' /斌/庆典'完成
这是完全正常的错误消息,因为 -c 参数正是在新bash中启动htop所需的。
有趣的是,使用 xterm (这也是QtCreator的默认外部终端(即使我最初没有在我的系统上使用它) - 就像一个如果我对我的htop-tool使用以下设置
Executable: xterm
Arguments: -e htop
它在运行 xterm 的外部窗口中打开一个完美工作的交互式htop。
有没有人知道如何用bash替换xterm,还是只是因为我错过了什么?我已经很好地设置了我的bash(即使我没有默认字体和字体大小以及xterm中缺少选项卡应该是一个不足以使用它的理由,除非有人想要手动配置它)并且真的想要使用它。我也尝试查看QtCreator的文档和外部工具XML文件,但无法找到足够的信息来解决我的问题。
答案 0 :(得分:2)
xterm是终端模拟器,而Bash是shell。您需要终端仿真器在图形环境中以交互方式运行shell或其他基于文本的应用程序。
听起来你有一个启动Bash的预定义终端模拟器的快捷方式。我建议找出哪个终端模拟器(可能LXTerminal?)并使用该终端模拟器运行htop
:
Executable: LXTerminal
Arguments: -e htop
了解man page中的-e
选项(您的版本文档可能会有所不同)。