Como imprimir todas as variáveis não ambientais?
Estas são todas as variáveis que eu mesmo adicionei desde o momento em que o shell foi iniciado, como ao fazer:
read abc
123
# echo ${abc} => 123
Ou
xyz='123'
# echo ${xyz} => 123
Eu quero imprimir todos eles, para saber o que foi adicionado à memória, para que eu possa limpá-lo.
Se você estiver usando o Bash, este comando listará os nomes de todas as variáveis do shell que não são herdadas por um processo filho e não fazem parte do slate padrão:
Isso produz uma lista de todos os nomes de variáveis no shell atual (com
set
) e uma lista de todos os nomes de variáveis em um subprocesso recém-criado executando o mesmo shell, localiza todos os presentes na primeira lista e não na segunda (comdiff
, o último corte e o primeiro grep) e elimina algumas variáveis padrão específicas do Bash que o subprocesso não terá porque não é um shell voltado para o usuário. lista apenas as variáveis e não as funçõesset -o posix
.set
Ele omitirá as variáveis de ambiente herdadas e as variáveis que você marcou explicitamente para exportação.
Troque
bash
por sua concha. Você também precisará alterar a lista de variáveis ignoradas no últimogrep
, e provavelmente poderá perderset -o posix
. Se o seu shell não tiver substituição de processo , você precisará usar arquivos temporários ou acesso específico da plataforma a descritores de arquivo (como/dev/fd
).Por outro lado, se tudo o que você deseja fazer é limpar suas próprias variáveis e funções locais, então
terá esse efeito (ao mesmo tempo em que relê alguns arquivos de configuração e potencialmente perde alterações locais nas opções do shell).