Это то же самое, что и любая другая программа. Это позволяет вам перенаправлять и передавать ввод-вывод, как и другие программы.
echo "cat filename" | bash
выполнит команду cat имя_файла
, когда bash
прочитает свой стандартный ввод из канала.
bash -c "echo foo" > filename
выполнит команду echo foo
, и вывод будет перенаправлен в файл.
В Unix нет ничего «особенного» в оболочке. Это просто обычная программа, основной целью которой является выполнение других программ.