2012-05-29 52 views
0

我想寫一個字符串到文件中,但它不起作用。我相信我錯過了一些微不足道的東西。這些文件還不存在。 爲什麼下面的腳本不在文件中寫入任何內容?這些文件甚至沒有創建。bash echo >>不起作用

#!/bin/bash 

j="nch" 
temp_dir="~/temp_temp" 
echo "$temp_dir/$j" 
echo "c'mon" >> "$temp_dir/$j" 
echo "c'mon" >> "~/temp_temp/pch" 
+0

調試SH -x script.sh';它會告訴你殼體在做什麼,並會幫助你看到發生了什麼問題。您可能還注意到屏幕上生成的第一個「echo」;那也會讓你指向正確的方向。 –

+0

謝謝。這很好。 –

回答

5

~未在引用字符串中展開。

temp_dir=~/temp_temp 
echo "c'mon" >> ~/temp_temp/pch 
使用`

temp_dir=~/"temp_temp" 
echo "c'mon" >> ~/"temp_temp/pch" 

+0

對。我錯過了。謝謝! –

+0

你也可以使用'$ HOME',它在引用字符串中被擴展。但總的來說,記住引號不是shell中的標記邊界是有幫助的; 「foo」與「foo」或「f」「o」或「f」「oo」等相同。引號內的內容有不同的解釋,但是從內部到外部的變化不會結束這個詞。 –