问题描述:
在本地的window系统传的云服务器上一个.sh结尾的安装Java环境的脚本
上传到云服务器后,使用命令赋予执行权限
chmod +x 文件名
然后看一下这个脚本变绿了就可以了
然后开始尝试执行
./脚本名
然后就报错了
然后开始排查问题
1.检查并修复 Shebang 行
vi install-java.sh
检查第一行是否是
#!/bin/sh
或
#!/bin/bash
发现没有问题
2.验证文件完整性
file install-java.sh
正常输出应为类似:
install-java.sh: Bourne-Again shell script, ASCII text executable
如果显示 with CRLF line terminators,则需转换格式。
发现是这个问题
解决方法1:
使用 dos2unix
工具转换文件格式(如果 dos2unix
未安装,先安装它):
yum install dos2unix -y # CentOS/RHEL
# 或
apt-get install dos2unix -y # Debian/Ubuntu
dos2unix install-java.sh
解决方法2:
sed -i 's/\r$//' install-java.sh
我是用方法一就解决了,希望对大家有用