Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#set
#bash-builtins
#shell-variables
#shell-functions
#env
Medium

Qual dos seguintes comandos lista todas as variáveis e funções definidas no Bash?

A

env

B

set

Correct
C

env -a

D

echo $ENV

Official Explanation / Community Explanations

O comando set, quando invocado sem opções, exibe os nomes e valores de todas as variáveis e funções do shell no ambiente Bash atual. Isso inclui variáveis de ambiente e variáveis locais do shell, bem como quaisquer funções definidas.

Como funciona

  • set: Em Bash, set é um comando interno que, sem argumentos, exibe todas as variáveis do shell (incluindo variáveis de ambiente) e funções. Ele mostra o estado atual do shell, sendo útil para depuração e inspeção.
  • env: Este comando lista apenas as variáveis de ambiente (variáveis exportadas) que são passadas para os processos filhos. Ele não mostra variáveis ou funções locais do shell.
  • env -a: A opção -a não é válida para env; env não possui uma opção -a. Este comando provavelmente produzirá um erro ou será ignorado.
  • echo $ENV: Esta função tenta imprimir o valor da variável ENV. Normalmente, ENV não está definido por padrão no Bash, portanto, isso resultaria em uma linha vazia. Não lista todas as variáveis ou funções.

Por que a resposta correta está certa?

  • O comando set é a maneira padrão de listar todas as variáveis e funções definidas em um shell Bash. Ele fornece uma visão abrangente do ambiente atual do shell.

Por que as respostas incorretas estão erradas?

  • env: Exibe apenas as variáveis de ambiente exportadas, não incluindo variáveis locais ou funções.
  • env -a: Opção inválida; env não suporta -a. Mesmo que mostrasse, ainda assim só exibiria variáveis de ambiente.
  • echo $ENV: Imprime apenas o valor de uma única variável (ENV), que normalmente não está definido. Não lista todas as variáveis ou funções.