I was trying to compute sha256 for a simple string, namely "abc". I found out that using **sha256sum** utility like this:

```
sha256sum file_with_string

```

gives results identical to:

```
sha256sum # enter, to read input from stdin
abc
^D

```

namely:

```
edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb

```

**Note, that before the end-of-input signal another newline was fed to stdin.**

---

What bugged me at first was that when I decided to verify it with an online checksum calculator, the result was different:

```
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

```

I figured it might have had something to do with the second newline I fed to stdin, **so I tried inserting ^D twice this time (instead of using newline)** with the following result:

```
abcba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

```

Now, this is of course poorly formatted (due to the lack of a newline character), but that aside, it matches the one above.

After that, I realized I clearly fail to understand something about input parsing in the shell. I double-checked and there's no redundant *newline* in the file I specified initially, so why am I experiencing this behavior?