Hacker News .hnnew | past | comments | ask | show | jobs | submitlogin

You only need to create a temp file for the checksum file, not the downloaded contents. In the below example, no file exists on disk with the contents of `$s`.

> $ s='1<space><space>2'

> $ printf %s\\n "$s" | shasum -a 256 > tmp.sum

> $ printf %s\\n "$s" | shasum --check tmp.sum

> -: OK

So you can just `printf '%s<space><space>-\n' "$c" > tmp.sum` and check with `printf %s\\n "$s" | shasum --check --status tmp.sum || { echo "checksum failed" > &2 ; exit 1 ; }`

Having to create temp files is a wrinkle (could probably avoid it by using process substitution if you want to give up on POSIX sh), but so is writing bash scripts in general.



Pr for that https://github.com/gavinuhma/checksum.sh/pull/4

I ended up trying with process substitution so no tmp file.

It works. Trying to decide if it’s more difficult to read


Solid! I couldn’t figure this out which I why I stopped using “—-check”. I’ll take a look




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: