Вероятно, в примерах предполагается, что вы используете * nix-вариант, такой как Linux или Mac. В этих операционных системах программа называется mpg123
, потому что эти ОС не заботятся о расширениях, просто проверьте, что файл имеет исполняемый атрибут
На окнах вещи очень разные. Windows решает, является ли программа программой в зависимости от расширения (.exe, .com, .bat, .cmd и т. Д.). Таким образом, программа в Windows должна называться mpg123.exe
. Если вы откроете командную строку в Windows, вы можете запустить программу без указания расширения, так как Windows автоматически пробует разные расширения. Такое поведение при попытке использовать разные расширения происходит ONLY в командной строке, а не при попытке вызвать программу из другой.
Существует переменная окружения PATHEXT, список, в которой окна порядка пробуют разные расширения. На моем компьютере этот список:
C:\Windows\System32>echo %PATHEXT%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.RB;.RBW
Надеюсь, это было ясно. И предложение, если вы хотите написать код на ruby, установить Linux или получить Mac.