Я хочу сохранить вывод команды bash в строку скрипта bash. Часть, которая имеет значение, выглядит следующим образом:
#!/bin/bash
player_status="$(playerctl -l)"
Вывод команды при запуске на терминале (не с использованием скрипта bash): «Игроки не найдены». Когда я запускаю скрипт bash (обратите внимание, что эхо отсутствует), он выводит «Не найдено игроков» в терминал. Вместо этого я хочу, чтобы он помещался не в терминал, а в переменную.
Похоже, ваша команда выдает стандартный вывод ошибки, а не стандартный вывод. Попробуйте использовать модификатор 2>&1
в вашей команде оболочки.
#!/bin/bash
player_status="$(playerctl -l 2>&1)"
Модификатор означает «отправить стандартную ошибку на стандартный вывод».
Пожалуйста, попробуйте использовать обратные кавычки (`), обратные кавычки выполняют команду и возвращают результат в той же оболочке LEVEL
player_status=`playerctl -l`
вместо
player_status="$(playerctl -l)" # Here the command is executed in child process thus its output is not available in this script from which CHILD process was executed