使用 OS X bash 比较剪贴板中的 sha1 校验和与本地文件的 sha1 的最快方法

Fastest way to compare sha1 checksum in clipboard with sha1 of local file using OS X bash

我在想也许它是将 shasumdiff 与管道或其他东西结合起来...

我想知道将从网站复制到我的剪贴板的 sha1 校验和与我从同一站点下载的本地文件的 sha1 校验和进行比较以验证其完整性的最快方法。

例如,我的剪贴板中有来自 Raspberry Pi NOOBS download page 的 sha1 字符串 94f7ee8a067ac57c6d35523d99d1f0097f8dc5cc,我想使用终端应用程序将它与 NOOBS_v1_9_0.zip 文件的校验和进行比较,而且我不想从剪贴板内容创建新文件。

我认为是 bash 3.2(是 OS X 10.11.4)

您可以在 bash:

中使用类似这样的命令
if [[ $(pbpaste) == $(shasum file | awk '{print }') ]]; then echo 'matches'; fi

使用它您可以创建这样的函数(例如,将其添加到您的 ~/.bash_profile):

shachk () { 
    if [[ $(pbpaste) == $(shasum "$@" | awk '{print }') ]]; then echo 'match'; fi ;
}

所以在命令行上你可以简单地输入:

$ shachk somefile

然后它会将它与粘贴板上的哈希值进行比较。

EDIT: 一个稍微改进版的函数,其中returns文件路径,matches/failed,并对输出进行着色。

shachk() { 
    [[ $(pbpaste) == $(shasum "$@" | awk '{print }') ]] \
    && echo  == $(pbpaste) $'\e[1;32mMATCHES\e[0m' && return; \
    echo  != $(pbpaste) $'\e[1;31mFAILED\e[0m' ; 
}