У меня есть скрипт bash, который я использую с i3wm
для переключения между режимами экрана (внешний экран, внутренний экран, все или зеркало). Первая часть скрипта захватывает название экранов. Если я копирую следующую часть и запускаю в терминале:
#!/bin/bash
xrandr|grep " connected primary"|IFS=" " read INTERNAL_OUTPUT con
xrandr|awk '/ connected/ && !/ primary/'|IFS=" " read EXTERNAL_OUTPUT con
echo internal monitor is $INTERNAL_OUTPUT
echo external monitor is $EXTERNAL_OUTPUT
...
Я получаю что-то вроде
$ ./script.sh
internal monitor is eDPI
external monitor is DPI-1
Но когда я запускаю реальный скрипт, переменные пусты и все, что я вижу, это
$ ./script.sh
internal monitor is
external monitor is
В чем разница при установке переменных внутри скрипта?