2013-09-16 61 views
1

我想回显一个var作为文本,而不是解析它。我试过并搜索过的所有东西似乎都向我展示了如何回显变量而不是变量文本。回声bash变量作为文本

请注意下面的代码就是我的基本回声。我已经试过\“$ ARG1 $ \”等这一行。

echo "command[runcmd]=sudo service $ARG1$ restart" >> testfile 

我想要的是它显示

command[runcmd]=sudo service $ARG1$ restart 

但是,它结束了作为是

command[runcmd]=sudo service $ restart 

我知道这是我的一个语法错误,但我可以”即使在MAN页面中,也似乎找到了正确的方式。也许我错过了一些东西。

预先感谢您!

+0

你需要逃出美元符号:'回声“command [runcmd] = sudo service \ $ ARG1 $ restart”>> testfile'它位于bash手册中的Quoting节中:...(\)是转义字符,它保留下一个字符的字面值,... – aktivb

回答

5

只需使用单引号:他们阻止变量替换:

echo 'command[runcmd]=sudo service $ARG1$ restart' 
+0

非常感谢您的帮助! – alexj

1

使用单引号(')而非双引号(“):

echo 'command[runcmd]=sudo service $ARG1$ restart' >> testfile