【发布时间】:2016-07-28 16:17:27
【问题描述】:
我试图 cd 进入脚本中设置的任何变量的 md5 哈希,但我没有得到正确的 md5 值,我认为这与我声明变量的方式有关。感谢您的帮助!
#!/bin/bash
var1=$1
md5=$(-n $var1 | md5sum)
cd /var/www/html/$md5
我希望它会带我到 md5 哈希给出的目录:
$ ./myscript hello
(no output)
$ pwd
/var/www/html/5d41402abc4b2a76b9719d911017c592
相反,它给了我错误并尝试cd 到错误的路径:
$ ./myscript hello
./myscript: line 3: -n: command not found
./myscript: line 4: cd: /var/www/html/d41d8cd98f00b204e9800998ecf8427e: No such file or directory
$ pwd
/home/me
无论我输入哪个值,它错误地尝试 cd 到的 md5sum 也是相同的。
【问题讨论】:
-
你在那个变量中得到了什么?
-
无论我传入什么变量,它每次都会输出相同的 md5 哈希
-
以前创建过md5sum的文件夹吗?即对于您所有的有效输入参数,是否存在具有其哈希值的目标文件夹?
-
是的,文件夹已经创建了
-
顺便说一句,Google 搜索“d41d8cd98f00b204e9800998ecf8427e”确认这是您在计算空文件的 MD5 校验和时得到的结果(例如,在类 Unix 系统上为
/dev/null),或者当没有标准输入上的输入等。由于失败的-n命令不产生任何输出,md5sum命令没有输入并且每次都输出相同的散列。