我想要一个简单的bash命令来比较两个散列值,这两个散列值输出是否相同。我试过的是:
md5sum file1 | awk '{print $1}' # outputs hash value without filename
md5sum file1 > md5sum file2 # no output even though files/hashes differ
到目前为止,我已经尝试了以下几种变体,但都没有成功:
[ md5sum states.txt | awk '{print $1}' == md5sum states_copy.txt | awk '{print $1}' ]
[ (md5sum states.txt | awk '{print $1}') == (md5sum states_copy.txt | awk '{print $1}') ]
我对脚本或多行bash解决方案持开放态度,或者使用shasum,但我对linux和bash还不熟悉,所以我尽量保持它的简单性。
我在运行ubuntu 18.04。

最佳答案

[ "$(<states.txt md5sum)" = "$(<states_copy.txt md5sum)" ]

使用$(...)获取命令输出
记住将$(...)括在"
bash测试支持字符串比较的single=,而不是double==
使用stdin和<重定向将文件重定向到md5sum。

关于linux - Linux bash:比较哈希字符串而不设置变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52291082/

10-16 12:40