На ваш вопрос нельзя ответить в целом. Однако некоторые комментарии. В моей версии bash (3.1.17 (1) -release) ваша команда не имеет нужного выхода даже при запуске из командной строки; то же самое с zsh. Так что, по-видимому, что-то подозрительно в вашей команде. Я не знаю, для чего поддерживается «## + (0)», но «# 0» удаляет один ведущий ноль. Это показывает способ удаления произвольных чисел нулей.
Если действительно существует разница между поведением в командной строке и сценарием, то, скорее всего, сценарий использует другой интерпретатор (разные версии bash, bash вместо zsh) или разные параметры оболочки (попробуйте запустить shopt). Последнее различие может быть результатом вашего интерактивного поиска оболочки $HOME/.bashrc и $HOME/.profile, тогда как сценариев, как правило, нет. Это не должно влиять на переменные среды, поскольку они наследуются при экспорте, но это должно влиять на параметры оболочки, которые необходимо установить в каждой оболочке.
Для меня мне пришлось добавить дополнительную строку, пожалуйста, попробуйте следующее:
ie:
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00
xrandr --output VGA1 --mode 1440x900_60.00
С уважением