Shell —— windows下编辑的sh或rc脚本,在linux下运行出现的问题

在Windows环境下使用Notepad编写代码并上传至Linux环境时,由于换行符差异导致各种报错,如.bash_profile路径问题、换行符问题和语法错误。解决方案包括在Notepad中转换为Unix格式、使用dos2unix命令或通过sed进行查找替换。此外,.bash_profile是Linux中的隐藏文件,可以使用cat命令查看。
摘要由CSDN通过智能技术生成

一、问题情景:

    最近在做开发时,在本地(Windows环境)Notepad里写好代码,直接上传到测试环境(Linux)运行出现了各种报错。原因是在本地用Notepad编写时,默认为windows格式,需要进行Unix格式的转换。(主要原因是Windows默认换行符为'\r\n',而Linux换行符为'\n')


二、产生的各种报错:

1. 找不到正确的 .bash_profile 路径

 bash: ~/.bash_profile: No such file or directory

bash: ~/.bash_profile: No such file or directory

2.  换行符问题

    line 2: $‘\r‘: command not found

line 2: $‘\r‘: command not found

3. 一些奇怪的字符问题,如

    syntax error near unexpected token 

syntax error near unexpected token `else'


三、解决方案:

方法一:直接在Notepad编辑器修改

    在Notepad中选择:编辑——文档格式转换——转为Unix,之后再上传。

    

方法二:通过 dos2unix 指令

    在执行脚本界面输入

dos2unix + 文件名
如:dos2unix my.rc

    如果环境中没有安装dos2unix,可自行安装或用其他方法

## 安装dos2unix
yum install dos2unix

方法三:查找替换法

    该方法只能解决部分问题。如这次遇到的三个问题,该方法只能解决1和2。

sed -i 's/\r//' 文件名
如:sed -i 's/\r//' my.rc

四、一些其他收获:

~./.bash_profile 是个隐藏文件。可通过 cat ~/.bash_profile 查看,来判断问题一不是因为这个文件被删了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值