记-EOF多行写入文件防止变量替换
一、问题描述
新增yum源时使用EOF多行写入发现
$releasever
被解析为空,导致无法正常下载rpm安装包。
cat > /etc/yum.repos.d/mongodb-org-5.0.repo <<EOF
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
EOF
二、解决办法
1.$releasever变量值从哪来?
cat /etc/yum.conf |grep distroverpkg
rpm -qi centos-release
2.解决办法
EOF多行写入会对内容中的 反引号`、美元符号$ 进行解析处理,如果不期望进行解析处理,可以将第一个EOF改为"EOF"、‘EOF’、\EOF。
cat > /etc/yum.repos.d/mongodb-org-5.0.repo <<\EOF
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
EOF
参考:
CentOS中Yum源配置文件中
r
e
l
e
a
s
e
v
e
r
和
releasever和
releasever和basearch取值,获取系统版本、架构等信息
EOF多行写入文件防止变量替换