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下 ...
随机推荐
- RobHess的SIFT代码解析之RANSAC
平台:win10 x64 +VS 2015专业版 +opencv-2.4.11 + gtk_-bundle_2.24.10_win32 主要参考:1.代码:RobHess的SIFT源码:SIFT+KD ...
- 11_Hive TransForm 案例
1.需求:将Json格式的数据处理后插入新表中 数据文件如下:rating.json,文件格式:{"movie":"2858","rate" ...
- Codeforces 1216E2 枚举位数+二分
两个二分 枚举位数 #include <bits/stdc++.h> #define MOD 1000000007 using namespace std; typedef long lo ...
- Java中的super的使用
- integer == 号问题
integer a=123 integer b=123 integer c=250 integer d=250 a==b(true) c==d (false) Integer中把-128-127 缓存 ...
- CloseableHttpClient设置超时
Java开发我们常常需要和第三方系统进行通信,通信的方式有多种,如dubbo方式,webservice,微服务和CloseableHttpClient等方式,常涉及到超时问题,这里主要说的是Close ...
- Jquery调用Ajax实现联动使用json
在很多时候我们都会使用到联动.jquery.js是一个不错的js框架.其ajax也挺不错.下面将实现一个js联动:选择公司出来受益人.根据公司不同受益人不同. 前提是:你用引入jquery.js &l ...
- 04 DRF内容回顾、用户登录 (含跨域) (vuex vue-cookie)、用户认证 (Auth认证)(拦截器)
1.内容回顾 1.视图中常见的继承 2.频率访问控制源码 3.序列化,反序列化 2.初始化代码 1.后端代码:AuthView (1)目录结构 (2)urls (3)view (4)注释掉cors ( ...
- Luogu P2146 [NOI2015]软件包管理器 树剖
卸载:把子树清空: 安装:把自己到$1$的链改为$1$ #include<cstdio> #include<iostream> #include<cstring> ...
- 微信小程序开发入门教程(二)---分析官方云开发例子中的一些功能
接上一篇文章:https://www.cnblogs.com/pu369/p/11326538.html 1.官方云开发的例子中,点击获取 openid,对应代码在E:\wxDEV\helloyun\ ...