程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
Bash 相关技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
Bash 5.3 的命令替换 ${ command; }:省掉 fork,副作用留在当前 shell
编程
Bash 5.3 的命令替换 ${ command; }:省掉 fork,副作用留在当前 shell
2026-10-02 21:03:49
Bash 5.3 新增 ${ command; } 与 ${| command; } 两种在当前 shell 上下文执行的命令替换,省掉 fork 与管道,代价是副作用(变量、cd、状态)会留在当前 shell。另含 GLOBSORT、compgen -V、read -E、source -p PATH、BASH_MONOSECONDS、fltexpr,以及 C23 带来的编译要求变化。
Bash
Shell
Linux
脚本
运维
管道
set -o pipefail 搭配 grep -q:匹配到了,if 却返回 false
编程
set -o pipefail 搭配 grep -q:匹配到了,if 却返回 false
2026-10-01 21:02:26
开了 set -o pipefail 后把流管道给 grep -q,会因 grep 提前退出让上游收到 SIGPIPE,导致命中也被判失败。给出进程替换、awk、先物化等修法,以及 trap EXIT 与 ERR trap 的相关注意点。
Shell
Bash
pipefail
grep
运维脚本
pip
竞态
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
版本发布
TIP
`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
pip
一份 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
Mirage 深度拆解:当 Agent 的世界被挂载成一棵目录树——「一切皆文件」如何终结 N 套 API 对接地狱
编程
Mirage 深度拆解:当 Agent 的世界被挂载成一棵目录树——「一切皆文件」如何终结 N 套 API 对接地狱
2026-07-29 13:46:39
深度拆解 strukto-ai 开源的 Mirage:把 S3/Slack/GitHub/Notion/MongoDB 等挂载成一棵目录树,让 Agent 用 Bash 统一操作。含架构三层解剖、150 行迷你 VFS 实现、与 MCP 对比、生产优化与边界分析。
Mirage
虚拟文件系统
AI Agent
VFS
Bash
Unix哲学
MCP
沙箱
开源
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调