Alguém pode me dizer por que meu shell interpretador de linguagem de comando me mostra uma string vazia como resultado após o comando
$ echo $VERSION
E somente depois de executar este comando
$ . /etc/os-release
ele começa a me mostrar o resultado desse comando
$ echo $VERSION
18.04.3 LTS (Bionic Beaver)
você pode, por favor, me explicar o que acontece depois desse comando? Por que a Shell não mostrou isso antes? Por que o shell mostra isso agora?
A execução de ". /etc/os-release" executará todas as linhas do arquivo "/etc/os-release" em seu shell atual; Parece que o arquivo que você está fornecendo tem uma linha como abaixo que definirá a variável de ambiente "VERSION" em sua sessão:
Se você estiver usando o bash, "source" fornecerá o mesmo resultado: "source /etc/os-release"
Você pode verificar isso em detalhes: https://ss64.com/bash/source.html ou https://superuser.com/questions/46139/what-does-source-do