有人可以告诉我为什么我的命令语言解释器 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