Я думаю, что это происходит потому, что Linux использует $ для определения переменных оболочки.
Итак, если вы хотите использовать этот символ в своих аргументах, ваш единственный шанс - пропустить '\ $', который не будет заменен вызывающей оболочкой. Windows использует% variablename% для определения такого рода переменных, поэтому у вас нет такой «проблемы» в этом O.S.