Bash脚本:将字符串编码为base64并存入变量

3

我有一个usernamepassword变量。我想以username:password的格式将它们编码为base64。

#!/bin/bash
username=username
password=password

echo Encoding username/password...
echo $username:$password | base64

这样做是可以的,但我不确定如何将输出放到变量中而不是写入控制台。

此外,为什么输出结果与像https://www.base64encode.org/这样的网站不同呢?


这个问题怎么会是 https://stackoverflow.com/questions/49308934/get-base64-version-of-password 的重复呢?我是无法理解的。我的意思是,这个问题明确地询问如何将输出分配给一个变量,而另一个问题仅仅是试图理解为什么命令不起作用。不仅如此,它现有的答案也没有展示如何将输出注册到一个变量中。它们是两个不同的问题。 - Clockwork
1个回答

7
使用$( ... )将结果存储在变量中。并使用-n不包括LF。
var=$(echo -n $username:$password | base64)

10
避免使用非标准的 echo -n,建议改用 printf 命令: var=$(printf '%s:%s' "$username" "$password" | base64)。 该命令将 $username$password 以冒号分隔的形式传递给 printf 命令,并使用 base64 对结果进行编码。 - Léa Gris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接