我在 Windows 7 上用过git-bash
很多次。我了解到它是 MinGW 的包装器。它有md5sum但不是sha1sum。我想安装sha1sum
,但我不知道如何安装。
当我尝试时mingw-get
,它说“未找到命令”
当我尝试mingw-get
从SourceForge,我只找到了整个 MinGW 程序的安装程序,但没有找到mingw-get
。
如何安装 gettingsha1sum
或 getting mingw-get
?
答案1
mingw-get
可从以下网址获取
sourceforge.net/projects/mingw/files/Installer/mingw-get
安装完成后运行
mingw-get install msys-coreutils
答案2
我自己解决了这个问题,通过添加一个使用包含的 openssl 的 shell 函数来替换我最常用的 sha1sum 部分。
function openssl_sha1sum() {
local i nf=0 binary= text=true
local -a files
# parse for -b/-t mode output arguments
for (( i=1; i <= $#; i++ )); do
case "${!i}" in
(-t|--text)
text=true
binary=
;;
(-b|--binary)
binary=true
text=
;;
(-|-[cw]|--help|--version|--status|--check|--warn)
;;
(*)
let 'nf++'
files[$nf]="${!i}"
;;
esac
done
# execute the appropriate command and reformat the output
if [ $nf -eq 0 ]; then
local binfmt='s/$/ *-/;' txtfmt='s/$/ -/;'
if [ -n "$binary" ]; then
fmt=$binfmt
else
fmt=$txtfmt
fi
openssl dgst -sha1 -hex | sed -e "$fmt"
else
local commonfmt='s/^[A-Z0-9]\+(\(.*\))= \([0-9a-fA-F]\+\)$/\2'
local binfmt="$commonfmt "'*\1/;' txtfmt="$commonfmt "'\1/;'
if [ -n "$binary" ]; then
fmt=$binfmt
else
fmt=$txtfmt
fi
openssl dgst -sha1 -hex "${files[@]}" | sed -e "$fmt"
fi
}
if ! type -p sha1sum &>/dev/null; then
function sha1sum() { openssl_sha1sum "$@"; }
fi