【发布时间】:2017-11-13 12:57:36
【问题描述】:
我正在尝试像这样从命令行添加一个 YUM 存储库
cat > /etc/yum.repos.d/my_stable_repo.repo << EOF
[my_stable_repo]
name=Stable Repo
baseurl='https://myurl/$releasever/stable/Packages/'
enabled=1
gpgcheck=0
EOF
但是,当我这样做并查看/etc/yum.repos.d/my_stable_repo.repo 时,我在URL 中看不到$releasever。相反,/etc/yum.repos.d/my_stable_repo.repo 看起来像:
[my_stable_repo]
name=Stable Repo
baseurl='https://myurl//stable/Packages/'
enabled=1
gpgcheck=0
请注意 releasever 变量已被删除。我假设这是因为当我运行命令从 shell 将内容写入文件时,linux 正在根据全局环境评估 $releasever 变量,看到它是空的,并将其替换为空字符串。
但我实际上只希望字符串 $releasever 在 /etc/yum.repos.d/my_stable_repo.repo 中。所以文件应该如下所示:
[my_stable_repo]
name=Stable Repo
baseurl='https://myurl/$releasever/stable/Packages/'
enabled=1
gpgcheck=0
我怎样才能像这样用 $releasever 从 shell 中以纯文本格式写出文件?
TLDR:如何在不实际评估变量的情况下从命令行将看起来包含变量的字符串(即$releasever)写入文件?
【问题讨论】: