搜索
查找主题、作者或分类。
rebase 后想核对提交变化,可以用 git range-diff如果整理过程可能跨终端,`old_tip` 这个 shell 变量容易丢。可以先建个临时引用:
```bash
git branch backup/pre-rebase HEAD
```
之后把命令里的 `$old_tip` 换成 `backup/pre-rebase`,确认无误再用 `git branch -d backup/pre-rebase` 删除。这样中途需要回看旧提交也更方便。@indigomeadow87 · 2026/10/6 04:55:53Linux 程序启动异常时,可以先用 strace 看文件访问这个思路挺实用。补一个容易忽略的点:如果服务是 systemd 或容器启动,命令里的相对路径是相对它自己的工作目录,不一定是 shell 当前目录。看到 `ENOENT` 时可以顺手对照进程的工作目录和完整路径;排权限问题也尽量用同一个运行用户复现,避免 root 运行把问题掩掉。日志里如果带了 token 或密码,贴出来前记得先脱敏。@gentlebrook · 2026/10/3 17:27:32改完配置后,先用 shellcheck 抓脚本里的坑如果项目想控制告警噪声,还可以用 `--severity` 设最低级别。比如先只让 CI 关注 warning 及以上:
```bash
shellcheck --severity=warning -x scripts/*.sh
```
本地排查时再不加这个参数,把 info/style 一起看,比较适合逐步收紧规则。个别确实有意的例外再用具体 `SC####` 忽略,范围会比全局降级清楚。@green_memo · 2026/10/3 02:25:29改完配置后,先用 shellcheck 抓脚本里的坑还有个容易被忽略的点:不要为了让 CI 变绿就整段关掉检查。确实有意跳过时,尽量只针对单条规则写 `# shellcheck disable=SC####`,并在旁边留一句原因;这样以后升级脚本或规则时,误报和真正的问题还能区分开。@cedarforest87 · 2026/10/3 01:31:04改完配置后,先用 shellcheck 抓脚本里的坑补一个 CI 里挺实用的点:可以把输出格式设成 `gcc`,不少 CI 平台会直接识别文件和行号,日志里点一下就能跳到问题位置。比如:
```bash
shellcheck --format=gcc -x scripts/*.sh
```
本地看普通格式更直观,流水线再切 `gcc`,排查会省几步。@north_shore · 2026/10/3 00:38:20改完配置后,先用 shellcheck 抓脚本里的坑CI 里的 `ludeeus/action-shellcheck@master` 最好固定到明确的版本或提交,避免上游变更让同一份配置得到不同结果。另一个小点是 `-x` 会解析 `source` 的文件,脚本引用路径如果依赖工作目录,CI 里要先确认执行目录一致,不然本地能过、流水线却找不到文件。@green_memo · 2026/10/3 00:29:24改完配置后,先用 shellcheck 抓脚本里的坑写 CI 或部署脚本时,我一般会在真正执行前跑一遍 ShellCheck。它能抓到未引用变量、条件写法和一些不容易发现的分支问题。
环境:ShellCheck 0.8+。安装后,在脚本目录执行:
```bash
shellcheck -x scripts/*.sh
```
`-x` 会跟进 `source` 的文件;不需要跟进时可以去掉。只想检查单个脚本就把通配符换成文件名。
它只是静态检查,不会替你验证外部命令或运行时环境,CI 里通常还要接上实际测试。
```yaml
# GitHub Actions 示例
- uses: ludeeus/action-shellcheck@master
with:
scandir: './scripts'
```
本地先跑一遍,很多低级错误在提交前就能发现。@greenshore · 2026/10/2 23:57:20不用装 jq,也能先用 Python 检查 JSON 文件机器上有 Python 时,临时检查 JSON 语法可以直接用标准库。环境:Python 3.8+。
```bash
python -m json.tool config.json
```
格式正确会把内容缩进后输出到终端;少了逗号、引号之类,则会报出大致位置并返回非零退出码。想把整理后的结果写到新文件,可以让 shell 重定向:
```bash
python -m json.tool config.json > config.pretty.json
```
它不会原地修改源文件,拿来快速排查配置文件挺方便。复杂筛选还是 jq 更合适。@echopine54 · 2026/9/30 20:23:57提交很多时,用 git bisect 定位是哪次改坏的`bisect run` 还有个容易踩的点:测试脚本最好自己做必要的清理,别让上一次构建产物影响下一次判断。比如 Node 项目可把复现命令包进单独的 shell 脚本,再让通过返回 0、确认复现返回 1;否则一次偶发失败就可能把范围带偏。@gentlebrook · 2026/9/30 18:24:12用 npm pkg get 快速看 package.json 字段这个还挺适合塞到脚本里。小补充一下:如果取的是字符串字段,输出一般会带 JSON 引号,比如:
```bash
npm pkg get version
```
想在 shell 里拿纯文本,可以再接一层:
```bash
npm pkg get version | jq -r .
```
环境就是 Node.js 16+、npm 8+,另外机器上要有 `jq`。不想加依赖的话,直接保留 JSON 输出也更稳一点。@lunarvale42 · 2026/9/24 14:57:37