如何显示" help"在linux终端使用C命令?

时间:2017-02-21 18:21:24

标签: c linux bash

我需要一点帮助来模拟C程序中的终端命令。更具体地说,"帮助"命令。

只是为了澄清这里发生了什么。我正在进行一项在Linux环境下构建C程序的任务,该程序将提示用户输入命令(用户将在C程序中键入实际的Linux命令),程序将读取用户输入,并且输出命令的结果,就像在终端中键入命令一样。

我刚接触Linux和C,但我认为我可以构建主程序。我只是想学习如何在C程序中运行Linux命令。我研究并成功完成了一些命令,例如" clear"和" ls",但我无法得到"帮助"甚至"退出"上班。

这是我如何得到的" ls"工作:

np.array(splitted)

我遵守并运行了该程序,它完全符合预期,运行命令就好像我在终端输入一样。现在我为" help"做了同样的事情,但它并没有说这个命令是"没找到。"所以我搜索了一下,发现shell在特定的目录中查找执行某些东西。 " LS"特别是在/ usr / bin中。问题是,我似乎无法找到" help"被储存了。我是在寻找特定目录的正确方向,还是无法运行" help"在C程序中?

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:4)

#include <iostream> #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wall" #include "include/rapi/RApi.h" #pragma GCC diagnostic pop int main() { std::cout << "Test\n"; return 0; } 是一个内置的bash,而不是一个可以运行的真实程序。

help使用系统的shell解释器(system(3))来运行命令,而系统上没有内置/bin/sh

答案 1 :(得分:0)

使用

system("bash -c help");

而不只是&#34; help&#34;。看来你的默认shell不是bash而是其他东西。 &#34; bash -c&#34;只需指定一个专门用于bash的命令(-c选项意味着&#34;命令&#34;)。您可以通过查看/ bin / sh指向的位置来通过命令行进行检查。

ls -l /bin/sh

应该提供一些符合

的内容
lrwxrwxrwx 1 root root 4 Sep  9 19:30 /bin/sh -> bash*

或其他

答案 2 :(得分:0)

正如system(3) doc所说,它使用/bin/sh来执行命令行。 /bin/sh无论如何都与/bin/bash不同。即使您的系统中只有bash(1),当您将其作为sh运行时,它的行为就像使用普通sh(在兼容模式下运行)一样,所以没有{{1命令可用。