Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个在 Linux shell 中运行的 C 程序。现在我遇到了这样的命令问题。
#include <stdio.h> void main() { char* command="history>>history"; system(command); }
我希望它将命令“历史”的结果写入文档,但它失败了一个空白。
如果我将其更改为“日期>>历史”,当前系统时间将被写入文档。
“历史>>历史”有什么问题吗?如果我想得到这份工作,我应该怎么做?谢谢!
问题是这history不是一个真正的命令,而是一个内置的 shell。因此,您不能从 C 程序 [1] 中调用它。
history
根据用户使用的 shell,您可以改为从 获取历史记录~/.bash_history,~/.zsh_history依此类推。但是请注意,zsh 仅在会话结束时写入此文件。
~/.bash_history
~/.zsh_history
[1] 好吧,理论上你可以尝试system("bash -c history"),但你不会得到实际的历史记录,因为内置函数没有在当前会话的上下文中运行。
system("bash -c history")