在 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
但没有帮助。
- 如何修复 macOS 命令?
- 是否有一个命令可以同时在 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 命令删除无效字符