Base64编码在脚本中不同

问题描述 投票:0回答:1

我正在尝试在bash脚本中对user:password字符串进行base64编码,但是该脚本中的结果与在shell中运行命令时的结果不同。

在外壳中(预期输出):

echo -n "user:password" | base64
dXNlcjpwYXNzd29yZA==

在脚本中(w / -n):

USER=$(echo -n "user:password" | base64)
echo $USER
LW4gdXNlcjpwYXNzd29yZAo=

在脚本中(不带-n,末尾有额外字符):

USER=$(echo "user:password" | base64)
echo $USER
dXNlcjpwYXNzd29yZAo=

有人可以告诉我我在这里想念的东西吗?谢谢

bash authentication encoding base64 basic
1个回答
0
投票

在脚本中,您使用的是另一个echo,它无法识别-n作为选项,并在其输出中显示它:您获得的base64是-n user:password的编码。

在脚本开始处设置一个#!/usr/bin/env bash shebang,请确保不要使用其他shell(例如ksh myscript.sh)来调用它,并且您应该不错。

© www.soinside.com 2019 - 2024. All rights reserved.