Может ли исполняемый файл `source` без оболочки использовать для активной оболочки?

Когда я использую оболочку, это (AFAIK) невозможно для сценария оболочки, который содержит source somefile чтобы повлиять на родительскую оболочку (если, конечно, сам сценарий не был получен, конечно).

Я хочу знать, может ли исполняемый файл без оболочки (например, написанный на языке C) эффективно source somefile файл и иметь все доступное для оболочки, как если бы я набрал source somefile в командной строке.

 $ type source source is a shell builtin 

Вот как это возможно (это имело больше смысла в вашем первоначальном, более длинном вопросе).

Нет, вы не можете воспроизвести поведение source во внешней программе (за исключением использования трюков буферизации ввода). Это то же самое, что и с cd : только оболочка может изменять собственное внутреннее состояние, поэтому только встроенные оболочки могут изменять внутреннее состояние оболочки.