我正在我的灰机中使用登录会话。
我的问题是,history
在 ash shell 中执行命令时,它返回0
.这是因为.ash_history
尚未创建。我尝试通过调试代码来分类问题ash.c
。请找到我们感兴趣的代码片段。经过分析,我发现主目录设置为NULL
,因此下划线的 if 条件失败并最终反映为.ash_history
创建失败。
ash.c 的代码片段
*#if MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY
if (iflag) {
const char *hp = lookupvar("HISTFILE");
if (!hp) {
hp = lookupvar("HOME");
========================
if(hp) {
===========
hp = concat_path_file(hp, ".ash_history");
setvar("HISTFILE", hp, 0);
free(hp);
hp = lookupvar("HISTFILE");
}
}
if (hp)
line_input_state->hist_file = hp;*
任何人都可以帮助我设置HOME
目录。如果主目录是某个位置,则 if 条件将通过并且.ash_history
文件也会被创建,这解决了我的问题。