Когда вы выполняете внешний процесс, требуемая команда может выглядеть примерно так: «foo arg1 arg2 arg3». Если «foo» - исполняемый файл, это то, что выполняется и получает аргументы.
Однако часто случается, что «foo» на самом деле представляет собой какой-то сценарий или может быть командой, встроенной в оболочку, а не действительным исполняемым файлом на диске. В этом случае система не может выполнить «foo» напрямую, потому что, строго говоря, такие вещи не являются исполняемыми. Им нужна какая-то «оболочка» для их выполнения. В системах * nix эта оболочка обычно (но не обязательно) / bin / sh. В Windows это обычно будет cmd.exe (или любой другой файл, который хранится в переменной среды COMSPEC).
Этот параметр позволяет вам определить, какую оболочку вы хотите использовать для выполнения вашей команды, для относительно редкого случая, когда вы не хотите использовать значение по умолчанию.