eval `grep RUN_THIS test_file`
Обратите внимание также на предотвращение бесполезного использования кошки.
На самом деле, вам может потребоваться добавить точку с запятой в конец каждой команды в test_file
или заменить grep
на что-то, что добавляет необходимые точки с запятой.
eval `awk '/RUN_THIS/ { print; print ";" }'`
Я не уверен, что понимаю требование не запускать новую оболочку. Под капотом обратные команды запускают подоболочку, поэтому это может нарушить это требование (но в конечном итоге каждая внешняя команда запускает новый процесс, который запускается как ответвление текущего процесса оболочки при запуске сценария оболочки). Если вы боитесь последствий для безопасности, вам все равно не следует использовать сценарий оболочки.