加载中…
个人资料
王永濤365
王永濤365
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,729
  • 关注人气:21
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Linux下Shell脚本执行PHP报错:Could not open input file

(2014-01-23 10:13:26)
标签:

linux换行符

换行符

分类: Linux相关

在Linux下执行PHP文件时错误:

Could not open input file

网上查看资料,可能是文档格式的原因。

 

在Linux上查看:

查看文档格式 :set ff

   fileformat=dos 

执行 :set ff=unix

再次查看 :set ff

    fileformat=unix

重新执行,就没有问题了。

 

在Windows上使用Notepad++也可以查看文档格式:

【视图】【显示符号】【显示符号】

http://s14/bmiddle/001ZiglJty6G0G1MqXH2d&690not open input file" TITLE="Linux下Shell脚本执行PHP报错:Could not open input file" />


 

可以看到 dos 格式中,换行符为 :CRLF

http://s8/bmiddle/001ZiglJty6G0G1VmkL67&690not open input file" TITLE="Linux下Shell脚本执行PHP报错:Could not open input file" />

 

改变在“编辑”中修改文档格式:

【编辑】【档案格式转换】【转换为UNIX格式】http://s6/bmiddle/001ZiglJty6G0G1XiGF95&690not open input file" TITLE="Linux下Shell脚本执行PHP报错:Could not open input file" />

 

再次查看文档格式,换行符为:LF

 http://s11/bmiddle/001ZiglJty6G0G1Z5vYba&690not open input file" TITLE="Linux下Shell脚本执行PHP报错:Could not open input file" />

 

相关知识:

 

Dos和windows采用回车+换行CR/LF表示下一行,

而UNIX/Linux采用换行符LF表示下一行,

苹果机(MAC OS系统)则采用回车符CR表示下一行.


    CR用符号'\r'表示, 十进制ASCII代码是13, 十六进制代码为0x0D;

    LF使用'\n'符号表示, ASCII代码是10, 十六制为0x0A. 所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示.

    一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在Linux上运行就生成LF格式换行的文本文件. 在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错. 很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换.

 

参考资料:

linux与windows回车换行符的区别

http://www.cnblogs.com/dartagnan/archive/2010/12/14/2003499.html

 

linux下shell脚本执行php报Could not open input file

http://blog.slogra.com/post-221.html

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有