2013-09-16 5 views
1

Я написал свой собственный файл repo и пытаюсь выполнить скрипт установки в 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 

$ обозначает переменную расширение оболочки. Если вам нужен буквальный $, он должен быть экранирован, как указано выше, или вы должны использовать одинарные кавычки. Если вы хотите расширить переменные оболочки, они должны быть определены, иначе они выдадут пустую строку.

+0

Отлично, это сработало! Спасибо вам обоим. –

Смежные вопросы