102 lines
3.5 KiB
Bash
102 lines
3.5 KiB
Bash
#!/bin/bash
|
|
|
|
# 修复脚本行结束符问题
|
|
# 将Windows格式的CRLF转换为Unix格式的LF
|
|
|
|
echo "=== 修复脚本行结束符工具 ==="
|
|
echo ""
|
|
|
|
# 检查是否有dos2unix命令
|
|
if command -v dos2unix &> /dev/null; then
|
|
echo "[信息] 使用dos2unix工具修复行结束符"
|
|
|
|
# 修复原始脚本
|
|
if [[ -f "create-compose-package-multiplatform.sh" ]]; then
|
|
echo "[信息] 修复 create-compose-package-multiplatform.sh"
|
|
dos2unix create-compose-package-multiplatform.sh
|
|
chmod +x create-compose-package-multiplatform.sh
|
|
fi
|
|
|
|
# 修复WSL版本脚本
|
|
if [[ -f "create-compose-package-wsl.sh" ]]; then
|
|
echo "[信息] 修复 create-compose-package-wsl.sh"
|
|
dos2unix create-compose-package-wsl.sh
|
|
chmod +x create-compose-package-wsl.sh
|
|
fi
|
|
|
|
elif command -v sed &> /dev/null; then
|
|
echo "[信息] 使用sed工具修复行结束符"
|
|
|
|
# 使用sed移除\r字符
|
|
if [[ -f "create-compose-package-multiplatform.sh" ]]; then
|
|
echo "[信息] 修复 create-compose-package-multiplatform.sh"
|
|
sed -i 's/\r$//' create-compose-package-multiplatform.sh
|
|
chmod +x create-compose-package-multiplatform.sh
|
|
fi
|
|
|
|
if [[ -f "create-compose-package-wsl.sh" ]]; then
|
|
echo "[信息] 修复 create-compose-package-wsl.sh"
|
|
sed -i 's/\r$//' create-compose-package-wsl.sh
|
|
chmod +x create-compose-package-wsl.sh
|
|
fi
|
|
|
|
elif command -v tr &> /dev/null; then
|
|
echo "[信息] 使用tr工具修复行结束符"
|
|
|
|
# 使用tr删除\r字符
|
|
if [[ -f "create-compose-package-multiplatform.sh" ]]; then
|
|
echo "[信息] 修复 create-compose-package-multiplatform.sh"
|
|
tr -d '\r' < create-compose-package-multiplatform.sh > temp_file && mv temp_file create-compose-package-multiplatform.sh
|
|
chmod +x create-compose-package-multiplatform.sh
|
|
fi
|
|
|
|
if [[ -f "create-compose-package-wsl.sh" ]]; then
|
|
echo "[信息] 修复 create-compose-package-wsl.sh"
|
|
tr -d '\r' < create-compose-package-wsl.sh > temp_file && mv temp_file create-compose-package-wsl.sh
|
|
chmod +x create-compose-package-wsl.sh
|
|
fi
|
|
|
|
else
|
|
echo "[警告] 未找到合适的工具来修复行结束符"
|
|
echo "[提示] 请安装 dos2unix 工具: sudo apt-get install dos2unix"
|
|
echo ""
|
|
echo "或者手动运行以下命令:"
|
|
echo "sed -i 's/\r$//' create-compose-package-multiplatform.sh"
|
|
echo "sed -i 's/\r$//' create-compose-package-wsl.sh"
|
|
echo "chmod +x *.sh"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "[成功] 行结束符修复完成"
|
|
echo ""
|
|
echo "现在可以运行以下脚本:"
|
|
echo "- ./create-compose-package-multiplatform.sh (原始多平台版本)"
|
|
echo "- ./create-compose-package-wsl.sh (WSL优化版本)"
|
|
echo "- create-compose-package-windows.bat (Windows批处理版本)"
|
|
echo ""
|
|
|
|
# 验证脚本是否可执行
|
|
echo "=== 验证脚本 ==="
|
|
for script in create-compose-package-multiplatform.sh create-compose-package-wsl.sh; do
|
|
if [[ -f "$script" ]]; then
|
|
if [[ -x "$script" ]]; then
|
|
echo "[✓] $script 可执行"
|
|
else
|
|
echo "[✗] $script 不可执行"
|
|
chmod +x "$script"
|
|
echo "[修复] 已设置 $script 为可执行"
|
|
fi
|
|
|
|
# 检查是否还有\r字符
|
|
if grep -q $'\r' "$script" 2>/dev/null; then
|
|
echo "[警告] $script 仍包含Windows行结束符"
|
|
else
|
|
echo "[✓] $script 行结束符正常"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "修复完成!"
|