为什么 shell 在命令 echo $VERSION 之后不显示任何内容

为什么 shell 在命令 echo $VERSION 之后不显示任何内容

有人可以告诉我为什么我的命令语言解释器 shell 在命令后显示一个空字符串作为结果

$回显$版本

并且只有在执行此命令之后

$。 /etc/os-release

它开始向我显示该命令的结果

$回显$版本

18.04.3 LTS(仿生海狸)

您能解释一下该命令之后会发生什么吗?为什么 shell 之前没有显示它?为什么shell现在显示它?

答案1

运行“./etc/os-release”将在当前 shell 中运行文件“/etc/os-release”中的所有行;您正在获取的文件似乎有如下一行,它将在您的会话中设置环境变量“VERSION”:

VERSION="18.04.3 LTS (Bionic Beaver)"

如果您使用的是 bash,那么“source”会给您相同的结果:“source /etc/os-release”

您可以详细检查这些:https://ss64.com/bash/source.html或者https://superuser.com/questions/46139/what-does-source-do

相关内容