写了一个有while的脚本,push到android上,sh [filename]运行各种报错,折腾了一晚上。
诡异的地方在于:
相同的代码复制粘贴到命令行运行时正常的,
但是sh [filename]是,就是各种报错,不是while 有问题,就是done有问题(syntax error done unexpected)。
结果是因为换行符:
windows下编辑的文档默认是CR+LF,
而android识别的是LF。
notepad++改变换行符:
编辑(edit) -> 档案格式转换(EOL conversion) -> 下面有3种(unix /osx format)
另外,设置(setting) -> 首选项(perferences) 里面的新建(new document)可以设置默认格式类型(format)。
另外:
dos2unix或者unix2dos,这两个命令我都没找到,不知道是不是需要用apt来安装
最后,关于adb shell,mark一下这个文档:
http://www.docin.com/p-440561683.html
参考:
1.notepad设置:
http://zhidao.baidu.com/link?url=vIMfQTIzAeFeVjEiFedQ4WfuqzLV-anIE-gk-6f3Z2uU7ceBr3fGwCsvgljecUDHHaOu_UlBh1iDrv3DcVOrGgpLDR9QzztA5EwQdkZ31b_
2.文本行尾的回车(CR)与换行符(LF)
http://blog.youkuaiyun.com/njnu_mjn/article/details/7853337
http://blog.youkuaiyun.com/njnu_mjn/article/details/8002002
3.找到答案的地方
http://www.unix.com/shell-programming-and-scripting/109789-get-while-unmatched-error.html