2013-09-16 100 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