Я написал функцию Bash, которая использует sed
для добавления цвета в Vivado.Интерактивный режим TCL работает, но я нахожу себя пишущим в темноте из-за трубы sed
(наверное).
Можно ли как-нибудь отобразить ввод при вводе текста через sed?
function vivid_vivado() {
mode="batch"
args=""
trace="-notrace"
for var in $*
do
gui) mode=$var ;;
tcl) mode=$var ;;
batch) mode=$var ;;
trace) trace="" ;;
*) args+="$var ";;
done
vivado -mode $mode -source MY_SCRIPT.tcl $trace -tclargs $args | \
sed -Ee "s/(^INFO:)/$(echo -e '\033[2m')\1$(echo -e '\033[0m')/g"
}
Я запускаю несколько прасеров sed -Ee ... -e ...
, которые действительно хорошо работают.К сожалению, сейчас я пишу с компьютера с Windows, поэтому код следует считать непроверенным.
Можно ли заставить входную строку tcl распространяться через команду sed
?Cli выглядит как Vivado% USERINPUT
в интерактивном режиме, если это поможет.
Запуск в интерактивном режиме tcl обычно оставляет вас в ряду Vivado%
, где вам разрешено продолжать взаимодействие с Vivado.Здесь ваши входные данные клавиатуры регистрируются и распространяются на стандартный вывод во время набора текста и выполняются Vivado до нажатия клавиши ВВОД.Вы можете запустить vivado -mode batch
, чтобы определить разницу при взаимодействии)
В интерактивном режиме TCL mode=tcl
;После того, как скрипт завершен, вы остаетесь в пустой строке и можете продолжать взаимодействовать с Vivado, но ваш ввод не будет отображаться, пока не будет нажата ENTER.Есть ли способ обойти это?