![为什么 shell 在命令 echo $VERSION 之后不显示任何内容](https://linux22.com/image/13255/%E4%B8%BA%E4%BB%80%E4%B9%88%20shell%20%E5%9C%A8%E5%91%BD%E4%BB%A4%20echo%20%24VERSION%20%E4%B9%8B%E5%90%8E%E4%B8%8D%E6%98%BE%E7%A4%BA%E4%BB%BB%E4%BD%95%E5%86%85%E5%AE%B9.png)
有人可以告诉我为什么我的命令语言解释器 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