Bash:使用特殊字符生成字符串的md5哈希值

时间:2017-01-18 14:18:09

标签: bash shell hash character space

我想创建一个bash脚本,用于创建字符串的md5-hash。 但字符串可以包含特殊字符和空格。我怎么能得到这样的字符串是可读的,例如。 MD5SUM?

我已将以下脚本编写为" md5.sh":

#!/bin/bash
echo -n $1 | md5sum | awk '{print $1}'

但如果我使用" ./ md5.sh" (最后有一个空格)这将无法识别。 也无法从脚本中读取引用。还有一个"将以提示结束...

希望有人可以帮助我:)。

1 个答案:

答案 0 :(得分:1)

首先,您需要在脚本中引用参数(并使用printf;如果人们忘记echo存在,那么世界会更好:

printf '%s' "$1" | md5sum | awk '{print $1}'

其次,要传递一个实际的空格作为参数,它也必须引用,以便shell不会丢弃它:

./md5.sh " "