返回列表 发布新帖
查看: 5|回复: 0

Shell 脚本常见报错大全

发表于 前天 15:26 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在 Linux/Unix 系统中,Shell 脚本不执行或者报错是运维工作中最常遇到的问题之一。本文整理了常见报错、原因分析及解决办法,方便大家快速对号入座排查问题。

常见报错一览表
报错信息常见原因解决办法
Permission denied脚本没有执行权限,或者操作的文件/目录权限不足给脚本可执行权限:chmod +x script.sh;确认操作目录权限
/bin/bash^M: bad interpreter: No such file or directory文件在 Windows 下编辑,存在 CRLF 换行符使用 dos2unix script.sh 转换换行符
command not found脚本中调用的命令不存在或不在 PATH 中检查 PATH,或使用命令全路径 /usr/bin/grep
No such file or directory脚本中引用的文件或路径不存在确认路径正确,使用绝对路径
syntax error near unexpected token脚本语法错误,如缺少 fi、done使用 bash -n script.sh 检查语法
unexpected end of file括号、循环、条件语句没有闭合检查每个 if、for、while、函数是否闭合
mysqldump: command not found脚本运行环境 PATH 不包含命令所在路径在脚本开头添加 export PATH=/usr/local/bin:/usr/bin:/bin
Permission denied while accessing /path/to/file用户权限不足,或 SELinux/AppArmor 限制检查目录权限:ls -ld /path/to/file;SELinux 临时测试:sudo setenforce 0
cannot create /path/to/file: Permission denied脚本尝试写入受保护目录改为可写目录,或使用 sudo 执行
Bad substitution使用了 Bash 特性,但用 sh script.sh 执行用 bash script.sh 执行,或修改 Shebang 为 #!/bin/bash
Segmentation fault脚本调用的二进制程序崩溃检查程序版本,或更新重装二进制
unexpected EOF while looking for matching ...括号、引号、花括号未闭合检查每对引号、括号、花括号是否匹配
export: command not found使用了 export 但脚本由 /bin/sh 执行改用 bash 执行脚本,或修改 Shebang 为 #!/bin/bash

排查小技巧
1. 调试执行:bash -x script.sh,逐条显示命令执行情况。
2. 语法检查:bash -n script.sh,不执行命令,只检查语法。
3. 换行符检查:确保脚本为 LF 格式,避免 CRLF 问题。
4. 环境变量:涉及外部命令时,确认 $PATH 包含命令所在路径。
5. 权限与安全限制:涉及系统目录或网络操作,注意用户权限和 SELinux/AppArmor。

总结:
Shell 脚本报错类型多样,但大多数问题都能通过 权限检查 → Shebang/换行符 → 命令/路径 → 调试模式 → 系统安全策略 这个流程快速定位。收藏这张报错表,运维排查效率会高很多。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.101209 second(s), 7 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表