1/5用友股份-LE支持服务业务本部技术方案--《SH脚本异常》建立日期:2014-01-20修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2014-00102/5文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围发布人姓名所属部门发布时间内部员工伙伴客户日期作者所属部门邮件地址版本2014-01-20宋文凯技术支持部V1.0版本领域模块备注3/5目录SH脚本异常..............................................................................................................4一、问题情景............................................................................................................4二、问题原因............................................................................................................4三、解决方案............................................................................................................44/5SH脚本异常注:此解决方案涉及数据库操作或代码操作,请由计算机专业人士操作,并且操作前请做好备份工作!一、问题情景AIX系统执行NMC工具的问题:我在AIX上执行NMC补丁工具的时候,提示没权限如下:#./startmonitor.sh/usr/bin/ksh:./startmonitor.sh:0403-006Executepermissiondenied.赋予权限:chmod-R777*提示不是一个标识符:startmonitor.sh:^M:Thisisnotanidentifier.二、问题原因在Linux中执行.sh脚本,异常/bin/sh^M:badinterpreter:Nosuchfileordirectory。分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。三、解决方案1)在windows下转换:利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。5/52)也可在Linux中转换:首先要确保文件有可执行权限#sh>chmoda+xfilename然后修改文件格式#sh>vifilename利用如下命令查看文件格式:setff或:setfileformat可以看到如下信息fileformat=dos或fileformat=unix利用如下命令修改文件格式:setff=unix或:setfileformat=unix:wq(存盘退出)最后再执行文件#sh>./filename