You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Git Bash中实现GPG加密时出现语法错误,寻求解决方法

问题分析与修正

原脚本存在几个关键错误,导致gpg报错:

  1. 变量赋值语法完全错误:$1="cd C:\Users\XXXX\Documents" 是无效写法,$1是脚本的位置参数(运行脚本时传入的第一个参数),不能这么赋值。切换目录直接用cd命令即可,同时Git Bash中Windows路径要改成Unix风格(C:\转成/c/,反斜杠换正斜杠)。

  2. gpg的--output参数不能用通配符:--output *.csv.gpg 无法让gpg自动为每个输入的csv文件生成对应输出,gpg一次只能处理单个输入文件对应单个输出文件,必须逐个循环处理。

  3. 可选优化:dir是Windows命令,Git Bash中用ls更符合bash环境习惯。


修正后的脚本:

#!/bin/bash

# 切换到目标目录,使用Git Bash兼容的Unix风格路径
cd /c/Users/XXXX/Documents

# 列出目录内容(可选,验证是否在正确目录)
ls

# 循环遍历每个CSV文件,逐个加密
for csv_file in *.csv; do
  # 先检查文件确实存在,避免无CSV文件时执行出错
  if [ -f "$csv_file" ]; then
    # 生成对应输出文件名:原文件名 + .gpg
    gpg --encrypt --output "${csv_file}.gpg" --recipient username "$csv_file"
  fi
done

运行这个脚本后,目录下每个xxx.csv文件都会被加密成xxx.csv.gpg,符合你的需求。

内容的提问来源于stack exchange,提问作者Ritwik Mohapatra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 10:17:16