程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
Shell 相关技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
脚本终端能跑放进 crontab 就没了反应:环境变量、flock 与排查顺序
代码
脚本终端能跑放进 crontab 就没了反应:环境变量、flock 与排查顺序
2026-09-27 20:02:14
脚本在终端里跑得正常,放进 crontab 却毫无反应,问题基本都出在「环境不一致」。本文按时间语法、环境变量、重定向、flock 防重叠、时区、Docker 容器五个坑逐条拆解,附排查顺序:systemctl status cron、grep CRON /var/log/syslog、journalctl -u cron、crontab -l,以及用 env 输出对比 cron 实际环境的方法。
crontab
Shell
flock
定时任务
运维
install.sh 报 env: 'bash\r' 不是权限问题:CRLF、dash/noexec 与 cron PATH 的排查笔记
代码
install.sh 报 env: 'bash\r' 不是权限问题:CRLF、dash/noexec 与 cron PATH 的排查笔记
2026-09-23 21:02:58
脚本在终端能跑、部署就报 env: 'bash\r' 或 syntax error,先别急着 chmod +x。这篇按 CRLF 换行污染、/bin/sh 指向 dash、noexec 挂载、cron 精简 PATH 四类环境差异给出排查顺序,含 file/od 验证、sed 清洗、env -i 最小环境复现与 while read 读文件的安全写法。
Shell
Linux
运维
脚本
Bash 脚本上生产前的六个坑:set -e 不生效、管道里变量丢了、文件名带空格
编程
Bash 脚本上生产前的六个坑:set -e 不生效、管道里变量丢了、文件名带空格
2026-09-20 21:04:01
把 Bash 脚本上生产前最容易踩的六个坑讲清:for f in $(ls) 被文件名空格拆开、变量不加引号、set -euo pipefail 管不到的分支、管道右侧子 shell 丢变量、缺 trap 清理、缺调试手段。给出可复制的 NUL 分隔遍历与完整脚本骨架。
Shell
Bash
运维
Linux
脚本
终端能跑、进 cron 就废:Shell 脚本丢变量、丢 PATH、删错路径的修法
编程
终端能跑、进 cron 就废:Shell 脚本丢变量、丢 PATH、删错路径的修法
2026-09-16 20:03:29
Shell 脚本在终端跑得好、进 crontab 就找不到命令,管道里的计数变量莫名丢失,文件名带空格就删错路径——这些不是语法问题。本文从真实故障切入,给出 set -euo pipefail、trap 清理、find -print0|while IFS= read -r、cron 的 PATH/HOME 显式声明、7 种括号的正确用法等可复制的写法。
Shell
Bash
运维
脚本
crontab
Bash 5.3 发布:命令替换不再 fork 子进程,MULTIPLE_COPROCS 默认启用
综合
Bash 5.3 发布:命令替换不再 fork 子进程,MULTIPLE_COPROCS 默认启用
2026-09-15 21:02:47
Bash 5.3 距 5.2 三年,最实用的改动是两种不再 fork 子进程的命令替换(${ cmd; } 与 ${| cmd; }),另有 GLOBSORT、compgen -V、read -E、trap -P 等。本文按核心特性、Readline 8.3 变更与落地建议整理,含源码编译前置依赖。
Shell
Bash
Linux
版本发布
`set -euo pipefail` 写了,函数里失败却继续跑:errexit 的例外与 ERR trap 的继承
编程
`set -euo pipefail` 写了,函数里失败却继续跑:errexit 的例外与 ERR trap 的继承
2026-09-15 00:03:29
脚本开头写了 set -euo pipefail,函数里命令失败却继续执行、trap ERR 不触发。从 man bash 的 errexit 例外清单讲起:why 函数体在 if/|| 上下文里 -e 失效、ERR trap 需要 set -E 才继承、$(...) 里 -e 默认关闭要用 inherit_errexit,附打包函数取退出码、trap 配方与 ShellCheck/Bats 检查链路。
脚本编程
Shell
Bash
错误处理
ShellCheck
部署脚本退出码 127/126/137/139:Linux 自动化安装失败的排查路径
综合
部署脚本退出码 127/126/137/139:Linux 自动化安装失败的排查路径
2026-09-12 21:02:58
Linux 自动化安装脚本失败时,退出码是最直接的诊断入口:127 二进制不在 PATH、126 权限或 noexec、137 被 OOM Killer 杀、139 ABI 段错误。附 strace、dmesg -T、curl -Iv、mtr 的排查用法,以及一段可直接放进脚本头部的防御性调试片段。
Shell
运维
故障排查
Nginx HTTP/3 自动化脚本:别只看版本号,四个检查点统一 QUIC 参数
综合
Nginx HTTP/3 自动化脚本:别只看版本号,四个检查点统一 QUIC 参数
2026-09-12 20:02:15
把 Nginx 的 HTTP/3(QUIC)参数收进自动化脚本:先用 nginx -V 确认 http_v3_module 与 stream_quic_module 两个模块,再用 sysctl 模板注入 UDP 缓冲并校验内核≥5.7,server 块用 envsubst 注入端口/超时/拥塞算法且与 http2 同监听,最后 nginx -t、reload、curl/tcpdump 探测与浏览器 Protocol 兜底验证。
Nginx
HTTP
3
QUIC
运维
Shell
一份 Bash 脚本跑完 Docker CI/CD:build、deploy、健康检查与失败自动回滚
编程
一份 Bash 脚本跑完 Docker CI/CD:build、deploy、健康检查与失败自动回滚
2026-09-11 21:31:30
用一份 bash 脚本把 build→push→deploy→健康检查→失败自动回滚串成一条流水线,不装 Jenkins。给出健康检查判定表、旧镜像 rollback、结构化日志、告警 webhook 与 build/deploy/rollback 三段核心代码,并说明团队到什么规模该升级到正规 CI。
Bash
CI
CD
Docker
Shell
自动化部署
Shell 脚本全局改 IFS 未还原:带空格目录被拆成多参数,误删半台服务器静态资源
案例
Shell 脚本全局改 IFS 未还原:带空格目录被拆成多参数,误删半台服务器静态资源
2026-09-05 21:05:56
复盘一起因 Shell 脚本全局改 IFS 未还原、导致带空格目录被拆成多参数误删静态资源的线上事故。讲清 IFS 分词规则、命令前缀/备份还原两种正确写法、read 读最后一行、跨 shell(zsh/dash/bash3.2)差异,以及 set -euo pipefail、find -print0 的工程化脚本标准。
Shell
IFS
踩坑
运维
bash
四段 Shell 脚本:自动备份、清日志、每日巡检、宕机拉起,挂 crontab 的排坑记录
综合
四段 Shell 脚本:自动备份、清日志、每日巡检、宕机拉起,挂 crontab 的排坑记录
2026-09-04 21:32:51
给出可直接进 crontab 的四段 Shell 运维脚本:自动备份、清过期日志、每日巡检、服务宕机自动拉起,并排掉「手动能跑定时任务却不执行」的 PATH/相对路径/权限/换行符四类坑。
Shell
运维
Linux
crontab
systemd
巡检
Windows 脚本丢到 Linux CI 报错 env: 'bash\r':CRLF 换行符的检测、修复与根治
代码
Windows 脚本丢到 Linux CI 报错 env: 'bash\r':CRLF 换行符的检测、修复与根治
2026-09-03 21:04:31
Windows 编辑保存的脚本在 Linux CI 执行报 env: 'bash\r' / bad interpreter,根因是 CRLF 换行符污染 shebang。给出 cat -A/file/sed 检测、sed 与 dos2unix 修复,以及 .gitattributes 与 CI lint 根治方案。
Shell
运维
脚本
Shell 生产事故复盘:for i in $(ls) 是怎么删错路径的
案例
Shell 生产事故复盘:for i in $(ls) 是怎么删错路径的
2026-08-29 21:12:32
一起 CI/CD 数据丢失事故的根因是 for i in $(ls ...) 遇到带空格的日志文件名被拆成多段删错路径。本文对照"题库写法 vs 生产级写法",讲清 find -print0|xargs -0、set -euo pipefail、trap 清理、管道右侧子进程变量陷阱等规避手段,并给出可直接套用的生产级脚本模板。
Shell
运维
健壮性
Bun Shell:首个 JavaScript 原生 Shell 环境深度拆解——从架构原理到生产级实战
编程
Bun Shell:首个 JavaScript 原生 Shell 环境深度拆解——从架构原理到生产级实战
2026-08-17 13:47:56
深度拆解 Bun Shell 架构设计、语法特性、生产级实战,与 bash/Node.js child_process 的性能对比,以及 Node.js 兼容层完整指南。
Bun
Shell
JavaScript
TypeScript
Node.js
跨平台
Shell脚本
命令行是 AI Agent 的「高考」:Terminal Bench 2.1 如何用真实任务测出模型上限
编程
命令行是 AI Agent 的「高考」:Terminal Bench 2.1 如何用真实任务测出模型上限
2026-08-15 17:16:04
深度拆解2026年最权威AI Agent评测体系Terminal Bench 2.1:用真实终端任务替代静态题库,从规划能力、工具选择、错误处理等五大维度全面评估Agent水平
Terminal Bench
AI Agent
评测基准
模型评估
LLM
强化学习
Shell
命令行
Terminal Bench 2.1 深度拆解:当「用命令行执行真实任务」成为衡量 AI Agent 能力的黄金标准——2026 评测体系全解析
编程
Terminal Bench 2.1 深度拆解:当「用命令行执行真实任务」成为衡量 AI Agent 能力的黄金标准——2026 评测体系全解析
2026-08-15 17:15:05
深度拆解2026年最权威AI Agent评测体系Terminal Bench 2.1:从真实终端任务设计、沙箱安全机制到五大核心维度评分,配代码示例与行业数据
Terminal Bench
AI Agent
评测基准
模型评估
LLM
强化学习
Shell
命令行
Nushell 深度实战:30K Star 的结构化数据 Shell——从类型系统到插件架构的生产级全链路解析
编程
Nushell 深度实战:30K Star 的结构化数据 Shell——从类型系统到插件架构的生产级全链路解析
2026-05-07 00:37:06
深度解析 Nushell 的类型系统、结构化数据管道、Rust 多 Crate 架构、插件机制和生产实践,从 Bash 迁移到 Nu 的全链路实战指南
Nushell
Rust
Shell
结构化数据
管道
插件系统
类型系统
DevOps
Nushell 深度解析:为什么 2026 年最值得学习的 Shell 不是 Bash
编程
Nushell 深度解析:为什么 2026 年最值得学习的 Shell 不是 Bash
2026-04-18 00:47:07
深入解析 2026 年最值得学习的 Shell 工具 Nushell,从架构设计、管道机制、代码实战多维度剖析,探讨它如何用结构化数据管道取代传统文本流,以及如何在生产环境中落地使用。
Nushell
Rust
Shell
命令行
Linux
X-CMD:给 AI Agent 装上 Shell 超能力,一句话控制你电脑上的软件
编程
X-CMD:给 AI Agent 装上 Shell 超能力,一句话控制你电脑上的软件
2026-04-17 12:55:21
介绍 GitHub 开源项目 X-CMD,为 AI Agent 提供 1000+ 轻量命令行工具,一句话控制电脑软件,支持 OpenClaw/Claude Code/Gemini CLI 等。
开源
X-CMD
AI Agent
Shell
命令行工具
GitHub
自动化
最全面的 `history` 命令指南
代码
最全面的 `history` 命令指南
2024-11-18 21:32:45
本文全面介绍了Linux和Unix系统中的`history`命令,包括其基本用法和高级选项。用户可以通过该命令查看、清空和管理命令历史记录,使用不同选项如`-c`、`-d`、`-w`等来操作历史记录。此外,文中还讨论了如何通过环境变量设置来优化历史记录的管理和使用。
Linux
Unix
命令行
Shell
技术
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调