`

shell设置脚本文件格式

 
阅读更多

 

 

工作中遇到的问题:

 

在window上写的shell脚本,通过nodepad++编辑后提交到linux系统跑数,

报错如下:

 

chmod '/DATA_CENTER/HFile/f_flws_ent/info

: no such file or directory

 

 

at 18. User-space table qualifiers can only contain 'alphanumerric characters': i.e. [a-zA-Z_0-9-.]:F_TRADEMARK_INFO_Q

 

 

上述两个报错,一个很明显是window的回车换行到了linux不识别 然后找不到需要的文件

第二个是乱码导致无法解析字符串。

 

下面有两个处理方式:

a)  shell中 set ff方式

b) 直接在notepad++里 格式下用UTF-8 无BOM格式重新保存提交

 

 

下面是方式a)的做法和介绍:

 

 

dos格式文件传输到unix系统时,会在每行的结尾多一个^M,即dos文件中的换行符“\r\n”会被转换为unix文件中的换行符“\n”,而此文件若是一个可执行文件的话,会导致此文件不能被执行,转换的方式有下面一个:

 

 

Python代码  收藏代码
  1. vi exec.sh  
  2. :set ff=unix(或者:set fileformat=unix)  
  3. :wq  

 

如果以上步骤要求在一个shell批处理文件中完成,那么该怎么办?

 

可以这样:

 

Python代码  收藏代码
  1. vi +':w ++ff=unix' +':q' ${file}  

 这样一条命令就可以搞定了,但是要严格注意上面空格的位置,不能多不能少。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics