Независимо от того, что я, кажется, делаю, я не могу получить вывод команды, которая будет назначена переменной в bash. Хотя мой сценарий выполняется поиск без каких-либо ошибок, я не получаю результат я хочу:Bash - Получение вывода команды
# Prompt if the user needs Qt
echo ""
echo "Checking for qt5-default."
echo ""
OUTPUT="$(sudo dpkg -s qt5-default)"
echo "OUTPUT:"
echo $OUTPUT
...
OUTPUT
никогда ничего не эхо. Однако, если я:
OUTPUT="$(ls -la)"
Затем он работает. Мне интересно, почему.
Вот что я имею в виду:
Как вы видите, «OUTPUT:» строка приходит после вывода команды, что означает, что выход не был сохранен в переменная, но была запущена в основной оболочке, что меня смущает.
Вот что происходит, когда OUTPUT="$(ls -la)"
: «ВЫВОД:»
В этом случае приходит раньше, показывая, что команда echo
работала правильно.
Любые идеи?
Похоже, что вместо стандартного вывода используется стандартная ошибка. Попробуйте '2> & 1' в конце команды. –