Estou usando uma sessão de login na minha máquina de cinzas.
Meu problema é que, ao executar o comando history
no shell ash, ele retorna 0
. Isso ocorre porque o .ash_history
não é criado. Eu tentei triar o problema depurando o código ash.c
. Por favor, encontre o trecho de código de nosso interesse. Na análise, descobri que o diretório inicial está definido como NULL
, portanto, a condição sublinhada se falhou e, finalmente, reflete em .ash_history
falha na criação.
Snippet de código de 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;*
Alguém pode me ajudar na configuração do diretório HOME
? Se o diretório home for algum local, a condição if já teria passado e o .ash_history
file também será criado, o que resolve o problema.