UNIX/Linux环境编程必须需要注意的问题总结
2015-07-14 18:46
531 查看
在UNIX/Linux下编程必须需要注意一下几点问题(特别是在运行于Windows上的IDE或编程工具进行开发):
1.大小写问题。
在文件或目录的命名规则中,特别注意驼峰命名法的大小写区分问题。有些语言的内部变量或者引用方面同样也是。
2.权限问题。
不要任意操作文件系统,换句话说,不要动与自己无关的任何文件(UNIX/Linux下一切都是文件),特别是新部署或者应用中要生成新文件时将权限先查看清楚
3.关于unix文件编码问题的再次强调
在运行于Windows上的IDE或编程工具进行开发时特别注意,保存文件时一定要将dos文件格式(file format)转化成unix文件格式。
dos文件格式中换行符为\r\n
unix文件格式中换行符为\n
现在vim和awk对此有了改进,能自动识别,而grep还不能很好的识别,因此一旦用grep这样的工具就会导致出现未知的后果。
附:针对文件格式做的一些测试:
则就会出现
另一个测试脚本:
也可以用vim中的:set ff=unix转换,也可以用dos2unix这样的工具转换,如下面的脚本所示:
本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1674199
1.大小写问题。
在文件或目录的命名规则中,特别注意驼峰命名法的大小写区分问题。有些语言的内部变量或者引用方面同样也是。
2.权限问题。
不要任意操作文件系统,换句话说,不要动与自己无关的任何文件(UNIX/Linux下一切都是文件),特别是新部署或者应用中要生成新文件时将权限先查看清楚
3.关于unix文件编码问题的再次强调
在运行于Windows上的IDE或编程工具进行开发时特别注意,保存文件时一定要将dos文件格式(file format)转化成unix文件格式。
dos文件格式中换行符为\r\n
unix文件格式中换行符为\n
现在vim和awk对此有了改进,能自动识别,而grep还不能很好的识别,因此一旦用grep这样的工具就会导致出现未知的后果。
附:针对文件格式做的一些测试:
#!/bin/bash #chkconfig: 345 86 14 #description: Startup and shutdown script for ChatterServer(Port:$SERVICEPORT)) #SERVICEPORT=29093 #SERVICEPORT=`grep ^port $(pwd)/../conf/constant.properties | awk -F '=' '{print $2}'` PORTFILE=$(pwd)/../conf/constant.properties #SERVICEPORT=$(cat $PORTFILE | grep ^port | awk -F '=' '{print $2}') SERVICEPORT=$(cat $PORTFILE | dos2unix | grep ^port) echo "SUCCESS: ChatterServer(Port:$SERVICEPORT) is OK"上面的constant.properties文件的fileformat如果为dos,如下图所示:
则就会出现
另一个测试脚本:
cat >./portfile<<eof port=1080 eof PIDFILE=./portfile cat $PIDFILE #SERVICEPORT=$(grep ^port $PORTFILE | awk -F '=' '{print $2}') #grep ^port $PORTFILE | awk -F '=' '{print $2}' # VS cat $PIDFILE | grep ^port | awk -F '=' '{print $2}' SERVICEPORT=$(cat $PIDFILE | grep ^port | awk -F '=' '{print $2}') echo $SERVICEPORT echo "SUCCESS: ChatterServer(Port:$SERVICEPORT) is OK"针对上面的文件格式问题,可以用IDE或者文件编辑器来处理,例如下图所示的设置:
也可以用vim中的:set ff=unix转换,也可以用dos2unix这样的工具转换,如下面的脚本所示:
# NOTE: $(pwd)/../conf/constant.properties file fileformat must be unix NOT dos in shell scripts, or will cause some unknown error # NOTE: grep is vrey sensitive to dos fileformat or unix fileformat # apt-get install dos2unix PORTFILE=$(pwd)/../conf/constant.properties SERVICEPORT=$(cat $PORTFILE | dos2unix | grep ^port | awk -F '=' '{print $2}')--end--
本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1674199
相关文章推荐
- u-boot中添加mtdparts支持以及Linux的分区设置
- 关于Linux 设置ip绑定问题 以及mysql 设置固定Ip访问问题
- Linux下批量杀掉 包含某个关键字的 程序进程
- Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- [linux]segvcatch简单使用
- Linux 网桥配置命令:brctl
- 在Windows上和Linux上安装xdebug
- linux下 切换双显卡调整屏幕亮度(简单两条命令搞定)
- Linux之VI常用命令
- 在linux(ubuntu)下部署Egret
- U盘安装Centos7.1操作系统的问题记录
- ubuntu下编译时出现“make: arm-linux-gcc:命令未找到”的问题
- linux下mysql的远程连接
- Linux NetworkManager服务介绍
- Linux 0.11下信号量的实现和应用
- centos上部署邮件服务器
- linux下的man和info命令
- 每天一个linux命令day2【ss命令】
- 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
- 在Ubuntu中通过update-alternatives切换软件版本