前面自己写了一个shell在测试环境下是能够执行的,可是在客户的环境上报了不少非法错误.
自己非常不解,肉眼观察了自己写的shell内容也没发现什么怪异的内容.
自己重新编辑一个新的文件后,那个新文件可以执行,这说明内容本身没有问题.
那问题就是可能出现在Window环境下换行code被修改过了.
用下面命令查看了一些那个shell的内容
od -c /usr/local/test/AA.sh | less
果然发现了Windows下面的换行code /r /n.找到问题所在.
然后就是把Windows的换行code转换成Linux的换行code就可以了.
# tr -d "/r" <
/usr/local/test/AA.sh
>
/usr/local/test/AAnew.sh
Windows换行code: CRLF /r/n
Linux换行code:LF /n