news 2026/9/2 23:00:08

Linux 终端编码设置影响shell脚本执行的案例分享

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 终端编码设置影响shell脚本执行的案例分享

本文介绍一个经验案例,由于终端会话的环境变量或编码设置发生了变化导致同一个shell脚本间歇性无法执行。以下是一些排查和解决方案:

1.检查终端编码设置

# 查看当前终端的编码echo$LANGecho$LC_ALLecho$LC_CTYPE# 正常情况下应该显示类似:# en_US.UTF-8 或 zh_CN.UTF-8

2.临时修复编码问题

在终端中执行:

# 设置正确的编码exportLANG=en_US.UTF-8exportLC_ALL=en_US.UTF-8# 或者使用中文编码exportLANG=zh_CN.UTF-8exportLC_ALL=zh_CN.UTF-8

3.检查脚本文件编码

# 查看脚本文件的编码格式fileyour_script.sh# 使用iconv转换编码(如果需要)iconv-f GBK -t UTF-8 your_script.sh -o your_script_utf8.shchmod+x your_script_utf8.sh

4.检查终端类型

# 查看当前终端类型echo$TERM# 如果显示异常,可以尝试设置为常见的xtermexportTERM=xterm-256color

5.比较两次执行的环境差异

创建一个环境检查脚本:

#!/bin/bashecho"=== 环境变量差异检查 ==="echo"LANG=$LANG"echo"LC_ALL=$LC_ALL"echo"LC_CTYPE=$LC_CTYPE"echo"TERM=$TERM"echo"SHELL=$SHELL"echo"=== 结束 ==="

6.在脚本开头强制设置编码

在你的脚本开头添加:

#!/bin/bash# 强制设置编码环境exportLANG=en_US.UTF-8exportLC_ALL=en_US.UTF-8exportLC_CTYPE=en_US.UTF-8# 你的脚本内容从这里开始...

7.检查终端配置

# 检查终端的编码设置locale# 如果输出不是UTF-8,修改系统配置sudolocalectl set-localeLANG=en_US.UTF-8

8.清理终端会话

# 重置终端reset# 或者完全退出终端,重新打开一个新终端

9.使用明确的执行命令

# 明确指定bash执行bashyour_script.sh# 或者在脚本第一行确保是 #!/bin/bash

10.调试脚本执行

# 使用 -x 参数调试bash-x your_script.sh# 使用 -v 参数显示详细执行过程bash-v your_script.sh

常见原因:

  1. 终端编码被修改:可能通过某些程序修改了终端的编码设置
  2. 环境变量污染:某些程序修改了环境变量
  3. 终端仿真器问题:某些字符显示异常
  4. 剪贴板复制问题:如果从其他地方复制脚本,可能引入特殊字符

可以先尝试最简单的解决方案:完全关闭终端,重新打开一个新的终端窗口,然后再次执行脚本。如果问题依旧,再按上述步骤逐一排查。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 17:31:24

语音数据库搭建第一步:用CAM++生成标准特征向量

语音数据库搭建第一步:用CAM生成标准特征向量 在构建一个高效、准确的语音识别或说话人验证系统时,最核心的基础工作之一就是建立高质量的语音数据库。而要让这个数据库真正“可用”,关键在于将原始音频转化为结构化的、可计算的声纹特征向量…

作者头像 李华
网站建设 2026/9/2 18:33:09

Apache 2.0开源许可解读:Sambert语音合成商用合规指南

Apache 2.0开源许可解读:Sambert语音合成商用合规指南 1. Sambert 多情感中文语音合成-开箱即用版 你是否正在寻找一个稳定、高质量、支持多情感表达的中文语音合成方案?市面上不少TTS工具要么依赖复杂环境,要么在商用场景中存在法律风险。…

作者头像 李华
网站建设 2026/9/1 20:25:25

紧固件常用材料解析:不锈钢、碳钢与合金钢

在装备制造、工程建设和各类工业系统中,紧固件虽然体积小,却承担着连接结构、传递载荷和保障安全的关键作用。随着制造业向高端化、复杂化发展,紧固件已不再是“按标准采购即可”的基础件,其材料选择正成为影响产品可靠性与寿命的…

作者头像 李华
网站建设 2026/9/2 13:19:07

紧固件制造设备基础知识大全

全球工业紧固件市场规模预计在2032年将达到1369亿美元,这一增长背后,是紧固件制造设备技术的持续革新与进步。从传统标准件到新能源汽车、航空航天领域的高端紧固件,其生产质量和效率直接取决于制造设备的先进程度。将于2026年6月24日至26日在…

作者头像 李华
网站建设 2026/9/1 9:19:57

MinerU处理超大PDF崩溃?显存溢出OOM解决方案实战

MinerU处理超大PDF崩溃?显存溢出OOM解决方案实战 1. 问题背景:当MinerU遇到几百页的PDF 你有没有试过用MinerU提取一份300页的技术手册,结果刚跑两分钟就提示“CUDA out of memory”直接崩了?这几乎是每个用MinerU做PDF结构化提…

作者头像 李华
网站建设 2026/9/2 16:54:12

汽车供应链平台如何通过CKEditor实现Excel数据透视表导入?

富文本编辑器Word粘贴功能集成技术日志 2023年X月X日 | 湖南某软件公司前端组 记录人:前端工程师 一、需求分析 1.1 核心需求 Word粘贴功能:支持从Word(.doc/.docx)复制内容粘贴到CKEditor 4,保留样式(表…

作者头像 李华