Está lá apenas pela consistência do formato de saída; o primeiro campo é o literal declare
; o segundo campo é a lista de atributos; o terceiro campo é o var=value
.
Portanto, para uma variável sem atributos específicos, o comando precisa ter uma maneira de mostrar "sem atributos"; isso é feito com --
por exemplo
bash-4.2$ declare y=100
bash-4.2$ declare -p y
declare -- y="100"
bash-4.2$ declare -l y
bash-4.2$ declare -p y
declare -l y="100"
bash-4.2$ declare +l y
bash-4.2$ declare -p y
declare -- y="100"
O resultado pode ser armazenado em um arquivo e originado posteriormente.