[ ] 是测试表达式,其中并没有 \n 这种用法,应该是 -n [ -n $x ] 表示字符串x非空时执行循环体。注意空格,[ ] 与里面内容之间要有空格的。另外,echo $x>>$ filename --> 这里$x最好写为"$x"防止字符串内容中含有空格,这样会被shell分别解释为echo的多个参数从而报参数个数错误的。