Linux bash:比较哈希字符串而不设置变量

Kar*_*ker 1 linux bash awk md5sum sha1sum

我想要一个简单的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.

Kam*_*Cuk 5

[ "$(<states.txt md5sum)" = "$(<states_copy.txt md5sum)" ]
Run Code Online (Sandbox Code Playgroud)
  1. 使用$(...)得到命令的输出
  2. 记得把它封$(...)在里面"
  3. Bash测试支持单个=字符串比较,而不是双重==
  4. 使用stdin并使用重定向将文件重定向到md5sum <.