echo $ HISTSIZE não imprime quando executado via shell script, mas funciona na linha de comando

1

Eu criei um arquivo de script de shell chamado 1.sh com apenas um comando echo:

echo $HISTSIZE

Eu fiz o arquivo 1.sh executável e tentei rodar o arquivo no terminal executando o comando

./1.sh

Imprimiu uma linha vazia no terminal. Mas quando executo esse comando no prompt do shell, recebo 1000 como saída.

Por que o eco não está funcionando no meu script de shell?

    
por FortuneCookie 17.12.2017 / 09:22

1 resposta

3

Seu script está sendo executado em um shell não interativo, que tem o histórico desabilitado por padrão (supondo que ele ofereça suporte ao histórico, mas esse é o caso na maioria das sh implementações atualmente); assim, HISTSIZE está vazio.

Se você ativar o histórico forçadamente (no Bash, pelo menos), você receberá o valor padrão:

set -o history
echo $HISTSIZE
    
por 17.12.2017 / 09:38