You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨Win10与Ubuntu平台,Putty SSH远程执行GitHub Bash代码遇阻求助

问题1:JavaScript复制内容时移除前导空白与回车符(CR)

我来给你写个直接能用的实现方案,完美解决这个需求:

核心思路

监听页面的复制事件,拦截默认行为后先处理文本——把每一行的前导空白去掉,同时删掉所有回车符(\r),最后把处理好的内容写入剪贴板,用户正常复制操作就行。

代码实现

// 监听全局复制事件
document.addEventListener('copy', function(e) {
    // 阻止默认复制逻辑
    e.preventDefault();
    
    // 获取用户选中的文本内容
    let selectedText = window.getSelection().toString();
    
    // 文本处理:移除CR回车符 + 每行前导空白
    let processedText = selectedText
        .replace(/\r/g, '') // 清除所有回车符(CR)
        .split('\n') // 按换行分割成单行数组
        .map(line => line.trimStart()) // 移除每行开头的空白字符
        .join('\n'); // 重新拼接成完整文本
    
    // 将处理后的内容写入剪贴板
    e.clipboardData.setData('text/plain', processedText);
});

小说明

  • trimStart() 只会删每行开头的空白(空格、制表符都算),不会影响行内或结尾的空白
  • replace(/\r/g, '') 彻底清除Windows风格的回车符,避免跨平台复制后的格式混乱

问题2:Putty远程Ubuntu终端粘贴GitHub Bash代码执行失败

我之前也踩过这个跨平台粘贴的坑,大概率是换行符或者字符编码的问题,给你几个按优先级尝试的解决方案:

方案1:先调整Putty的粘贴配置

打开Putty的设置窗口,找到 Window → Translation:

  • 把「Remote character set」改成 UTF-8
  • 在「Handling of line endings」选项里,选择「Force LF only」(强制只用Linux风格的LF换行符)
    保存配置后重新连接终端,再试试粘贴代码

方案2:先存成临时脚本再执行

如果直接粘贴还是报错,不如曲线救国:

  1. 在Ubuntu终端里新建临时脚本:nano temp_script.sh
  2. 右键把GitHub复制的代码粘贴到nano编辑器里
  3. 按Ctrl+O保存,Ctrl+X退出编辑器
  4. 给脚本加执行权限:chmod +x temp_script.sh
  5. 执行脚本:./temp_script.sh

方案3:直接用curl拉取GitHub文件执行

如果你的GitHub文件是公开的,直接用命令拉取执行更稳妥,完全避免粘贴问题:

# 替换成你GitHub文件的Raw链接(不是网页链接!)
curl -s https://raw.githubusercontent.com/你的用户名/仓库名/分支名/脚本路径.sh | bash

常见坑点排查

  • 检查代码里有没有Windows换行符:用cat -A temp_script.sh查看,如果每行结尾有^M,说明是\r\n的问题,用sed -i 's/\r$//' temp_script.sh就能修复
  • 确保脚本开头有#!/bin/bash声明,不然可能会用错误的shell执行

内容的提问来源于stack exchange,提问作者Osi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:52:15