Warum funktioniert Skript mit / bin / bash, aber nicht mit / bin / sh?

Ich versuche zu verstehen, warum das Skript funktioniert#!/bin/bash aber nicht#!/bin/sh. Ich leite Cygwin und beidessh.exe undbash.exe scheinen identisch zu sein (gleiche Dateigröße).

$ cat 1.sh
#!/bin/sh
while read line; do
  echo ${line:0:9}
done < <(help | head -5)

$ ./1.sh
./1.sh: line 4: syntax error near unexpected token `<'
./1.sh: line 4: `done < <(help | head -5)'

$ cat 2.sh
#!/bin/bash
while read line; do
  echo ${line:0:9}
done < <(help | head -5)

$ ./2.sh
GNU bash,
These she
Type `hel
Use `info
Use `man

Antworten auf die Frage(2)

Ihre Antwort auf die Frage