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 -1 yourscript | 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了。
问题很低级,但是记录下来就加深了一遍记忆,避免以后犯这种低级错误。
linux 执行shell脚本的时候,生成的log文件乱码的更多相关文章
- Linux执行shell脚本方式及区别&命令后台运行
Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/
- Linux执行shell脚本的方法
Linux下有个脚本/home/start.sh,常用的两种执行方法如下: 1../start.sh.注意此时start.sh脚本文件必须有可执行权限-x.类似的有以绝对路径来执行:/home/sta ...
- 转:linux执行shell脚本的方式及一些区别
假设shell脚本文件为hello.sh放在/root目录下.下面介绍几种在终端执行shell脚本的方法: [root@localhost home]# cd /root/ [root@localho ...
- linux 执行shell脚本的4种方法总结
bash shell 脚本的方法有多种,假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时, ...
- linux执行shell脚本时提示bad interpreter:No such file or directory的解决办法
故障现象:在终端直接cd /var正常,在shell脚本中执行则报错.原因是脚本是在windows平台下写的,换行符与Linux不同,造成脚本不能正确执行 出现bad interpreter:No s ...
- 用linux的shell脚本把目录下面的所有文件的文件内容中的小写字母改成大写字母
最近工作中,产品组的同事给出的数据里面都是小写字母 ,但是引擎组的同事要求他们拿到的从数据里面解析出的结构体里面存储的要都是大写结构,这让我们数据预处理组很尴尬啊,,所以在写了个这么样的脚本,在解析数 ...
- Linux终端执行shell脚本,提示权限不够的解决办法
原文:http://blog.csdn.net/this_capslock/article/details/17415409 今天在Linux尝试搭建dynamips的工作环境,在执行shell脚本时 ...
- Linux下如何执行Shell脚本
Linux下你可以有两种方式执行Shell脚本: 1.用shell程序执行脚本:根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等(一般来说第一行#!/bin/bas ...
- 在PHP中调用php_ssh实现远程登陆linux服务器并执行shell脚本。
这个功能主要用于在web端利用程序对远程服务器进行操作,通过PHP_ssh执行shell脚本来实现. 首先要安装php_ssh2组件,linux中centos7下有ssh2源,直接安装.window下 ...
随机推荐
- Flutter——Image组件(图片组件)
Image组件有很多构造函数,这里只说两个. Image.asset 本地图片 1.在根目录新建文件夹 /images 2.在 images 文件夹下建立两个文件夹 /images/2.0x /i ...
- C# Winfrom 自定义控件添加图标
Winfrom自定义控件添加自定义图标实现方式: 1.新建UserControl——略 2.寻找合适的图标文件——将文件和控件放置同一目录下(相同目录.自定义控件类名.图标文件名相同) 注:如果路径不 ...
- linux usb驱动记录(一)
一.linux 下的usb驱动框架 在linux系统中,usb驱动可以从两个角度去观察,一个是主机侧,一个是设备侧.linux usb 驱动的总体框架如下图所示: 从主机侧看usb驱动可分为四层: ...
- celery的简单使用
一 安装celery #首先进行一些简单配置 pip install celery apt-get install erlang apt-get install rabbitmq-server 二 ...
- grep匹配命令
关于匹配的实例: 统计所有包含“48”字符的行有多少行 grep -c "48" demo.txt 不区分大小写查找“May”所有的行) grep -i "May&q ...
- UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 140: invalid continuation byte
web阅片系统,遇到dicom文件在文件夹不能正常读取的问题.解决方法如下: def rep7(request): file_path = os.path.dirname(__file__) + re ...
- C# 集合(9) 持续更新
数组的大小是固定的.如果元素个数动态,就使用集合类. List<T>是与数组相当的集合类.其他的集合:队列.栈.链表.字典和集. .NET Framework 1.0 包括非泛型集合类,如 ...
- linux系统编程--信号
信号的概念 man 7 siganl 查看man手册 信号在我们的生活中随处可见, 如:古代战争中摔杯为号:现代战争中的信号弹:体育比赛中使用的信号枪......他们都有共性:1. 简单 2. 不能 ...
- INLINE HOOK过简单驱动保护的理论知识和大概思路
这里的简单驱动保护就是简单的HOOK掉内核API的现象 找到被HOOK的函数的当前地址在此地址处先修改页面保护属性然后写入5个字节.5个字节就是一个简单的JMP指令.这里说一下JMP指令,如下: 00 ...
- GitLab 如何在 Web 界面中 Merge branch
希望在 GitLab 中对 2 个 branch 进行合并,如何创建 Pull Request 并且如何进行合并呢? 在 GitLib 的 Web 界面中选择 Merge Requests 然后再界面 ...