fc construído em falta do traço (ou seja, o histórico do shell traço não funciona)?

4

Em dash manual, na seção Builtins existe uma explicação sobre fc embutido que controla o histórico do shell e reexecuta comandos dele, FCEDIT e HISTSIZE também são mencionados aqui. Ainda quando eu tento executá-lo dash dá comando não encontrado erro.

$ echo one
one
$ fc -l 1
dash: 2: fc: not found
$ fc
dash: 3: fc: not found

A questão é, por quê? É uma das escolhas padrão e consciente que os desenvolvedores do Ubuntu fizeram ou talvez eu precise habilitar fc de alguma forma?

Eu encontrei o relatório de erros do Debian que menciona fc , mas o patch mencionado há para i386 e última atividade no relatório foi em 2008, então nada sobre o Ubuntu até agora. E historicamente , o fc teve correções e existe em versões para diferentes versões do BSD, então tem que haver algo específico do Ubuntu ou específico do Debian aqui.

    
por Sergiy Kolodyazhnyy 21.04.2018 / 20:15

1 resposta

3

Verifique se o número da linha 57-59 em src/builtins.def.in do código-fonte do traço:

#ifndef SMALL
histcmd     -u fc
#endif

SMALL é definido se --with-libedit não é definido no configure, que é o caso do nosso dash / sh. Eu acho que é sobre como otimizar o consumo de memória.

Também o Changelog diz:

2005-10-29  Herbert Xu <[email protected]>
[...]
* Disable histcmd completely when SMALL is defined.
[...]

Se não for compilar com --with-libedit foi uma escolha deliberada ou não está além do meu conhecimento.

    
por Sebastian Stark 21.04.2018 / 20:48