系统("历史")无效

时间:2014-09-22 16:30:55

标签: c++ linux

我遇到了麻烦,我正在尝试使用C ++实现各种类型的Linux shell程序,但是当我尝试获取历史记录时(列出所有最近执行的命令),我的许多命令似乎都有效我得到一个“sh:1:history:not found”的错误,下面的行就是在该地区运行,问题是什么?

 system("history"); //produces the error above ^

如果我这样做

$ history

从命令行来说很好......为什么在C ++中不行?

2 个答案:

答案 0 :(得分:4)

system使用/bin/sh执行程序,但history是内置的bash。

您可以查看~/.bash_history的内容。 (注意(通过leemes).bash_history仅在关闭上一个bash会话后更新,并且不会通过执行system命令来更新。)

答案 1 :(得分:2)

因为它内置的bash shell不一定可以通过/ bin / sh -c`(可能是bourne shell)访问。

相关问题