Eles não são. Existem algumas coisas que não funcionam. A única coisa que vem à mente é:
sh myscript -flag1 -value=3
não é possível com sh < myscript
.
Com sh < myscript
, $ 0 está definido como sh
, em vez de myscript
, então
echo this script is $0
não funciona
Além disso, se o seu script ler a entrada, não funcionará - você não pode
sh < myscript < myfiletoread