Я пытаюсь распечатать вывод, выводимый из команды, переданной в сценарий bash. Проблема, которую я пытаюсь решить, заключается в том, как заставить вывод выглядеть так, как если бы вы запускали команду из оболочки. Например, когда я запускаю ls
, я вижу разные цвета для каталогов и файлов.Показать точный вывод команды Unix из сценария Bash
Вот некоторые примеры кода, что я до сих пор:
#!/bin/bash
command="[email protected]"
output=`$command`
echo "$output"
Так что мой сценарий оболочки занимает в команде, выполняет команду, а затем выводит на выходе. Я знаю, что я могу настроить цвет вывода с использованием цветовых кодов и echo -e
, но я хочу, чтобы результат выглядел так же, как и при запуске команды из оболочки. Любая идея, как я могу это сделать?
Для программы 'ls' и хотите получить цвет, если вам повезет, ваш' ls' поддерживает опцию '--color'. Итак, 'output = $ (ls --color); printf% s "$ output" будет делать трюк. Чтобы проверить, как работает ваша программа при подключении к каналу, вы всегда можете указать: 'mycommand | cat'. –
То, что я пытаюсь сделать, - это быстро и просто выполнить команду в нескольких каталогах/проектах. Например, если я хочу запустить команду «git status» в 8 разных проектах, чтобы увидеть, что изменилось локально, я не хочу запускать команду в 8 разных каталогах. Основными командами, которые я буду использовать, являются команды git и gradle, поэтому я буду смотреть на них конкретно.Код выше и команда «ls» - это просто упрощенные версии более крупной проблемы, которую я пытаюсь решить. – mdurban