Термический принтер только напечатайте только после отправки второго выходных данных в порт TTY

Это должно работать для ваших нужд:

awk '/---/ {print buff; buff="";} /[^-]/{buff=buff" "$0}'  filename

Вы также можете использовать блоки if-else:

awk '{if($0 ~ /---/){print buff; buff=""} else {buff=buff" "$0}}' filename

Также без использования буфера:

awk '{if($0 !~ /---/){printf "%s ", $0} else print ""}' filename
2
23.08.2018, 18:35
1 ответ

Этот ответ неверен, так как я думал, что принтер будет устройством PCI, но я неправильно понял. Параллельный порт уже есть в системе.

Хотя я не знаю истинной природы проблемы, вы можете надежно запускать собственный сценарий всякий раз, когда ядро ​​​​Linux подключает/отключает устройства PCI через udev, как описано здесь:(выдержка следует)

https://www.pcsuggest.com/run-shell-scripts-from-udev-rules

  sudo nano /etc/udev/rules.d/40-switch_modem.rules
My custom rule looks like bellow

  ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1c9e", ATTR{idProduct}=="f000", RUN+="switch_modem.service"

где idVendor и idProduct доступны в выходных данных lspci и исходят от самого оборудования. Подсистема в вашем случае будет не USB. Возможные значения доступны в документах udev.

В статье автор создал сценарий по своему выбору (вы, вероятно, захотите отправить новую строку на принтер один раз)

As directly running the script from a custom udev rule didn't worked, I had to create 
a new systemd service to run the script through it, when the device is plugged in, a 
USB modem in this case.

User created systemd service files are usually stored under /etc/systemd/system/, 
I'm naming it switch_modem.service

  sudo nano /etc/systemd/system/switch_modem.service

The systemd service file,

  [Unit]
  Description=4G modem switcher

  [Service]
  Type=oneshot
  RemainAfterExit=no
  ExecStart=/usr/local/bin/switch_modem

  [Install]
  WantedBy=multi-user.target

Это гарантирует, что :-он будет запущен во время загрузки,непосредственно перед достижением цели multi-user-он будет запускаться при каждом подключении -соответствующего оборудования

В udevтакже была опция для предоставления собственного сценария, который будет вызываться при каждом подключении/отключении ЛЮБОГО устройства, где udevбудет передавать соответствующую информацию в виде параметров строки команды -или переменных среды. Этот вариант более гибкий, но и более сложный в реализации.

0
27.01.2020, 22:31

Теги

Похожие вопросы