shell导出txt乱码_linux 执行shell脚本的时候,生成的log文件乱码

脚本执行后,生成的log文件,cat打开没有问题,vim打开就是文字乱码。

file1完全没有问题,其他人的file2追加到file中间的时候就出现了这个问题。

因为使用notepad在win7写的,通过winscp传到了linux,

1、所以首先想到可能是notepad的语言问题,于是乎去修改了notepad的编码格式,尝试用UTF-8格式,

这样之后./SHELL 提示  #!/bin/bash no such file or directory

然后在http://unix.stackexchange.com/questions/27054/bin-bash-no-such-file-or-directory 找到了答案,

This can also be caused by a BOM in a UTF-8 script. If you create the script in windoze sometimes you get some junk at the start of the file.

$ head -1yourscript |od -c

and see how it ends: This is wrong

0000000# ! / b i n / b a s h \r \n

This is correct:

0000000# ! / b i n / b a s h \n

用 dos2unix 命令解决这个问题,于是去notepad把编码改成UTF-8无BOM格式编码。。

问题没解决,继续想、、

2、直接在linux里面 cat file2 >>file1 追加到源文件后面,vim file1后发现追加的file2的部分后面多了 “^M ” 这个东西,

好吧,这个也要靠 dos2unix 命令 去除: dos2unix file 。

问题依旧存在、、

3、开始用最笨的方法,一个模块一个模块的粘贴,发现粘贴完第一个模块运行是没有问题的,log文件也没有问题(好现象,说明这个file2至少有一部分是可以用的,可能只是一部分有问题)。好吧,于是把文件放了sqlserver编辑器打开,瞬间惊呆了,。。。。命令里面掺杂了中文空格(空格君,你咋又来了(>﹏<))。

是个教训,中文空格带来的将是毁灭性的灾难!!!!!!

问题解决、

4、运行脚本发现生成了一些错误的以“-”开头的文件,rm -tmpfile 失败 ,好吧 rm会读成-t是参数,用 rm ./-tmpfile 就OK了。

问题很低级,但是记录下来就加深了一遍记忆,避免以后犯这种低级错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值