Яркая окраска Vivado sed для режима Batch и TCL - PullRequest
2 голосов
/ 08 мая 2019

Я написал функцию 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.Есть ли способ обойти это?

...