将sha256sum的结果读入bash变量

use*_*541 2 bash

对于sha256sum的以下执行和结果

~/HydroGuardFW/hw_1_5/Debug$ sha256sum debug_2.0.5.hex
34c977f0df3e90f9a4b36da3cd39fdccf3cd1123c563894b3a3378770a19fc6d      debug_2.0.5.hex
Run Code Online (Sandbox Code Playgroud)

输出将分为两部分,即sha256和计算出sha256总和的文件名的回显。如何将输出的第一部分(即sha256)捕获到变量中,以便可以使用bash脚本将其放置到文件中。

usr*_*usr 5

您不需要将其存储在变量中。您也可以直接将其重定向到文件。

sha256sum  debug_2.0.5.hex | awk '{print $1}' > dsl
Run Code Online (Sandbox Code Playgroud)

如果确实需要将其存储在变量中以用于其他目的,则:

read -r shm_id rest <<<"$(sha256sum  scr)"
echo $shm_id > dsl
Run Code Online (Sandbox Code Playgroud)

要么

shm_id=$(sha256sum  scr | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)

  • 也许`sha256sum文件| cut -d' ' -f1` 更好,因为丢失 `awk` 的可能性更高。 (4认同)
  • shm_id = $(sha256sum filename | awk'{print $ 1}'))就是回答这个问题所需要的。 (2认同)