我有一个bash脚本,我运行以下sudo ./test
bash脚本需要创建一个repo,并将以下数据保存在其中。
所以,这是bash脚本:
#!/bin/bash
echo "Inputing data... "
echo "[mongodb-org-3.2]
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/" > /etc/yum.repos.d/mongodb-org.repo
但是,因为发布者前面有一个$,脚本会保存文本,如下所示:
[mongodb-org-3.2]
baseurl=https://repo.mongodb.org/yum/redhat//mongodb-org/3.2/x86_64/
而不是这样:
[mongodb-org-3.2]
baseurl=https://repo.mongodb.org/yum/redhat/$c/mongodb-org/3.2/x86_64/
我知道如何将$releasever
视为文本而不是变量吗?
我尝试在它周围加上双引号但是仍然不起作用。我是bash脚本的新手,所以任何帮助都会受到赞赏。
谢谢!
答案 0 :(得分:0)
使用单引号来防止变量扩展。
使用双引号:
sh-4.1$ baseurl1="https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/"
sh-4.1$ echo $baseurl1
https://repo.mongodb.org/yum/redhat//mongodb-org/3.2/x86_64/
使用单引号:
sh-4.1$ baseurl2='https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/'
sh-4.1$ echo $baseurl2
https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
答案 1 :(得分:0)
使用反斜杠字符表示您不想调用bash变量,例如:
echo \$HELLO