我遇到了一个障碍,我试图实现一个与C++类似的linux shell程序,并且我的许多命令似乎都能正常工作,但是,当我尝试获取历史记录(列出所有最近执行的命令)我收到“sh:1:history:not found”的错误,下面这行是在该区域运行的所有内容,有什么问题?系统(“历史”)不起作用
system("history"); //produces the error above^
如果我做
$ history
在命令行还行吧......为什么不用罚款C++?
我遇到了一个障碍,我试图实现一个与C++类似的linux shell程序,并且我的许多命令似乎都能正常工作,但是,当我尝试获取历史记录(列出所有最近执行的命令)我收到“sh:1:history:not found”的错误,下面这行是在该区域运行的所有内容,有什么问题?系统(“历史”)不起作用
system("history"); //produces the error above^
如果我做
$ history
在命令行还行吧......为什么不用罚款C++?
system
使用/bin/sh
执行程序,但history
是bash内建的。
您可以改为查看~/.bash_history
的内容。 (注意(by lemes).bash_history
只在关闭前一个bash会话后更新,以及它不会通过执行system
的命令更新。)
因为它不是必须通过/ bin/sh访问的bash shell内建-c`(可能是Bourne shell)。
由于'history'不是'PATH'中的可执行文件,而是'bash'提供的shell命令。 – leemes 2014-09-22 16:33:09
所以如果你编写一个shell,你需要自己实现'history',作为内建函数(很像'cd'也应该是一个内建函数) – 2014-09-22 17:05:35