⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 history.c

📁 Linux下实现shell的部分功能
💻 C
字号:
#include "ysh.h"
#include "extern.h"

void add_history(char *inputcmd)
{
	envhis.end=(envhis.end+1)%HISNUM; /*end前移一位*/
	if (envhis.end==envhis.start){ /*end和start指向同一数组*/
		envhis.start=(envhis.start+1)%HISNUM; /*start前移一位*/
	}
	strcpy(envhis.his_cmd[envhis.end],inputcmd); /*将命令复制到end指向的数组中*/
}

void history_cmd()
{
	int i,j=0;
	if (envhis.start==envhis.end) /*循环数组为空*/
		return;
	else if (envhis.start<envhis.end) { /*start<end时*/
		for (i=envhis.start + 1;i<=envhis.end;i++) { /*显示start+1到end数组中的命令*/
			printf("%d\t%s\n",j,envhis.his_cmd[i]);
			j++;
		}
	}else { /*start>end时*/
		for (i=envhis.start + 1;i<HISNUM;i++) { /*显示start+1到HISNUN数组中的命令*/
			printf("%d\t%s\n",j,envhis.his_cmd[i]);
			j++;
		}
		for (i=0;i<=envhis.end;i++) { /*显示0到end数组中的命令*/
			printf("%d\t%s\n",j,envhis.his_cmd[i]);
			j++;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -