2012-05-29 56 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”等相同。引号内的内容有不同的解释,但是从内部到外部的变化不会结束这个词。 –