没有不值得去解决的问题,也没有不值得去学习的技术!

标签: Shell

  • 一次 Generation Bundle 当前性检查中,我误用了不存在的 generation-bundle check 命令。脚本虽然检测到失败并打印了 RESULT=FAILED,却因为在顶层子 Shell 中错误使用 return,没有真正停止执行,最终又打印出了一个伪造的 RESULT=PASS。本文记录这次故障的发现、恢复和修正过程,并讨论为什么 FINAL 只是摘要而不是权威状态、为什么后续成功不能覆盖必要检查失败,以及正式工作流中的 Shell 控制流为什么同样必须遵循“无法确认时按失败处理”的原则。

  • 在Windows终端执行curl命令时出现安全提示及URI解析无效的报错。通过放弃Windows终端转而在Ubuntu终端中粘贴相同的命令文本并回车,成功完成了执行,解决了之前的报错问题。

  • 由于在 Windows 10 中使用 WSL 运行 Shell 脚本受限于 Ubuntu 环境配置不完善的问题,最终决定将 Shell 脚本替换为 PHP 脚本。文章详细记录了如何在一个 PHP 脚本中执行 PHP 命令行的过程,并通过执行 themes.php 命令验证了功能。经数据库检查,写入的数据符合预期,成功实现了通过 PHP 脚本替代原 Shell 脚本的需求。

  • 本文记录在 Windows 10 上利用 Ubuntu 执行 .sh 脚本文件的排查过程。作者通过 Windows Terminal 进入 Ubuntu 系统,访问 /mnt/c 挂载的 C 盘目录并运行脚本,过程中遇到 PHP Redis 扩展缺失及连接拒绝等报错。经排查环境并安装扩展后证实,脚本执行依赖的环境需在 Ubuntu 中完整配置,且连接的是系统内的 Redis 而非 Windows 中的服务。

  • 本文记录了在 Windows 10 中使用 WSL 运行 .sh 脚本文件的尝试过程。通过管理员身份运行命令成功执行了测试文件,但在运行 themes.sh 时遇到了换行符语法错误及 PHP Redis 扩展报错。最终作者放弃在 WSL 中运行,转而在 Ubuntu 环境下执行,得出结论是脚本执行依赖的环境配置必须在 Ubuntu 中全部准备妥当,且所连接的 Redis 不再是 Windows 中的 Redis。

  • 文章记录了在 Docker 环境下部署 Yii 2.0 时,实现单域名与多域名模式同时支持的过程。通过修改 frontend 配置文件与 Nginx 配置文件,并设定环境变量控制模式,利用 Shell 脚本判断变量值执行相应的文件拷贝操作。在解决因脚本执行顺序导致 Nginx 无法启动的问题后,成功完成了该部署配置。

  • 针对 Shell 脚本运行报错 APPID unbound variable 的问题,排查发现赋值语句中包含 $APPID$ 字符串,本应保持原样却被 Shell 误判为变量。解决方法是在 $ 前添加转义字符修改为 \$APPID\$,避免 Shell 进行变量替换。验证运行后不再报错,且最终配置文件中该字符串保持原样,符合预期。

  • 针对 Rancher 环境变量包含公共部分的问题,文章通过添加新的环境变量 RMT_MAIN_DOMAIN 存储公共值,并修改 Shell 脚本进行引用。测试发现,当该变量未设置或值为空字符串时,容器升级会报错;只有将其设置为具体值后,升级才成功且环境变量生效,从而实现了变量的引用。

  • 针对产品部署时初始化数据的存储需求,文章阐述了在容器启动时将文件复制至 NAS 存储的实现方法。基于 CakePHP v2.6.4 框架,通过新建 Shell 脚本文件,编写了将本地目录下特定日期文件夹中的所有文件同步至挂载 NAS 存储目录的逻辑。操作中利用命令行工具执行同步任务,并配置了容器启动脚本自动运行该命令。最终经日志验证,文件成功复制至指定 NAS 路径,满足了自动化初始化存储的预期。

  • 文章针对 Shell 中报错 [!: command not found 的问题进行了分析与解决。通过编辑 /build/c_files/config/init/console_init.sh 文件,在方括号前后添加空格,修正了语法错误。操作完成后,Shell 中的报错不再出现,同时 Unlinking stale socket 相关的提示也已消失,问题得到解决。

👨‍💻 个人品牌

王世强|技术实践者 · 独立博客作者

15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

长期建设个人项目,也欢迎合适的技术交流、咨询与合作。

👉 关于我

.env (14) 404 (14) add (16) AI 翻译 (36) Array (19) A Tour of Go (79) CentOS (23) ChatGPT (32) ChatGPT Plus (19) chrome (19) Cloudflare (40) Codex (29) composer (42) composer.json (22) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (33) Dockerfile (15) EdgeOne (35) environment variable (19) error (24) file (15) filter (20) Git (28) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (89) go-tour-i18n (16) Google AdSense (30) Go 文档 (20) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (36) http (21) https (23) Interface (19) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (23) PHP (68) php-fpm (21) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (59) postman (18) Query (17) queue (16) Rancher (24) Redis (53) RESTful (27) RESTful API (23) SEO (14) Shell (14) Shopify (19) SlyTranslate (22) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (43) update (20) VPN (17) W3 Total Cache (41) Windows 10 (46) WireGuard (29) WordPress (136) WPCode (23) Wstunnel (16) Yii (40) Yii 2 (70) Yii 2.0 (51) 国际化 (17) 多语言翻译 (51) 开源项目 (16) 性能优化 (14) 技术博客 (15) 故障排查 (21) 数据库迁移 (16) 本地化 (22) 浏览器 (14) 阿里云 (20)

2026 年 11 月
一 二 三 四 五 六 日
 1
2345678
9101112131415
16171819202122
23242526272829
30