“echo $VAR | base64 -di > file”在 MacOS 上无法执行

“echo $VAR | base64 -di > file”在 MacOS 上无法执行

在 Linux 上我可以执行以下操作:

echo ${ANDROID_KEYSTORE} | base64 -di > android/keystores/staging.keystore

但在 MacOS 上,相同的命令会给出以下结果:

base64: option requires an argument -- i
Usage:  base64 [-hvDd] [-b num] [-i in_file] [-o out_file]
  -h, --help     display this message
  -Dd, --decode   decodes input
  -b, --break    break encoded string into num character lines
  -i, --input    input file (default: "-" for stdin)
  -o, --output   output file (default: "-" for stdout)

我曾尝试用 替换-di--decode --input但没有帮助。

  1. 我该如何修复 iOS 命令?
  2. 是否有一个命令可以在 Linux(Debian/Ubuntu)和 MacOS 上运行?

答案1

-i如果你想要可移植性,你必须自己实现 linux 风格

# don't forget to quote the variable!
echo "${ANDROID_KEYSTORE}" \
| sed 's/[^A-Za-z0-9+/=]//g' \
| base64 -d

sed 命令删除无效字符来源

相关内容