С Bash нельзя взаимодействовать, пока он выполняет команду. Если bash вызывает другую программу, он ждет завершения этой программы.
Команда bash - это наименьшая единица кода, которую bash может самостоятельно выполнить. Во время выполнения команды вы не можете взаимодействовать с оболочкой bash. Как только bash заканчивает выполнение команды, он возвращается к вам для следующей команды, которую нужно выполнить.
Bash получает команды, читая строки. Как только он прочитал достаточно строк, чтобы составить полную команду, bash начинает выполнять эту команду. Обычно команды занимают всего одну строку. Интерактивная сессия bash читает строки от вас на prompt. Неинтерактивные процессы bash читают свои команды из файла или потока.
Файлы, у которых первая строка содержит hashbang (и есть разрешение на выполнение), могут быть запущены ядром вашей системы, как любая другая программа.
Однако наш hashbang (#!/usr/bin/env bash) немного особенный: мы ссылаемся на программу /usr/bin/env, которая на самом деле не является программой, понимающей язык bash. Это программа, которая умеет находить и запускать другие программы. В нашем случае мы используем аргумент, чтобы сказать ей найти программу bash и использовать её для интерпретации языка в нашем скрипте.
Bash - это нестрогий интерпретатор языка, что означает, что он позволит вам писать неоднозначные команды. Его синтаксис не помешает вам писать команды, которые делают не то, чем кажутся.