linux环境要开发注意什么问题,UNIX/Linux环境编程必须需要注意的问题总结

这篇博客讨论了在UNIX/Linux环境下编程时需要注意的大小写敏感性、权限管理和文件编码问题。尤其是在Windows上使用IDE或工具开发时,确保文件以UNIX格式保存,避免使用grep时遇到问题。文章提供了示例脚本和转换方法,如使用dos2unix工具处理文件格式。
摘要由CSDN通过智能技术生成

在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这样的工具就会导致出现未知的后果。

附:针对文件格式做的一些测试:#!/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,如下图所示:

06a05881e2b118332f8dd3831f9e64bd.png

则就会出现

d8c2f94e9dfc7bb49164dc7c8da00375.png

另一个测试脚本:cat >./portfile<

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或者文件编辑器来处理,例如下图所示的设置:

af1fc1e3cd2448199c826fdd76264e39.png

7c1fcf539fc80837b578d5f772eedf0f.png

也可以用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--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值