跨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:先存成临时脚本再执行
如果直接粘贴还是报错,不如曲线救国:
- 在Ubuntu终端里新建临时脚本:
nano temp_script.sh - 右键把GitHub复制的代码粘贴到nano编辑器里
- 按
Ctrl+O保存,Ctrl+X退出编辑器 - 给脚本加执行权限:
chmod +x temp_script.sh - 执行脚本:
./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
相关产品推荐
相关产品推荐

