我正在尝试在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=
有人可以告诉我我在这里想念的东西吗?谢谢
在脚本中,您使用的是另一个echo
,它无法识别-n
作为选项,并在其输出中显示它:您获得的base64是-n user:password
的编码。
在脚本开始处设置一个#!/usr/bin/env bash
shebang,请确保不要使用其他shell(例如ksh myscript.sh
)来调用它,并且您应该不错。