系统( "history" ) 不工作

system("history") not working

本文关键字:工作 history 系统      更新时间:2023-10-16

我遇到了一个障碍,我正试图用C++实现一个linux shell程序,我的许多命令似乎都能工作,然而,当我试图获取历史记录(列出所有最近执行的命令)时,我得到了一个错误"sh:1:history:not found",下面一行是该区域中运行的所有命令,问题是什么?

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

如果我做

$ history

从命令行看,这很好。。。为什么它在C++中不好?

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

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

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