2013-09-16 57 views
1

我写了我自己的回购文件,并试图在bash中编写安装脚本。回声变量到文件

我的代码:

echo -e "[repo name]\nname=repo - $serverver - $basearch...\n.." >> /etc/yum.repos.d/reponame.repo 

然而,当我运行命令的$serverver$basearch失踪。

我该如何将变量回显到文件中,并试图确定它们?

我试图

echo -E 

"$serverver" 

'$serverver' 

`$serverver` 

\"$serverver\" 
+0

是否定义了'serverver'和'basearch'? – SethMMorton

+0

'echo -e'不可移植;最好使用'printf'代替。 – chepner

回答

2

为了增加yum.repos.d使用单引号',而不是双"。这保留$标志,因为它是由yum稍后解释。

echo -e '[repo name]\nname=repo - $serverver - $basearch...\n..' >> /etc/yum.repos.d/reponame.repo 
2
echo -e "[repo name]\nname=repo - \$serverver - \$basearch...\n.." >> /etc/yum.repos.d/reponame.repo 

$表示壳变量扩展。如果你想要一个文字$它必须被转义,如上所述,或者你必须使用单引号。如果你想扩展shell变量,它们必须被定义,否则它们将产生空字符串。

+0

太棒了,工作!谢谢你们俩。 –