На сервере Linux мы получаем файл, который содержит:
1. the printer IP address
2. the Text (XML tags) to be sent to that printer using FTP
Мне нужен скрипт оболочки bash, который может разбить файл и отправить текст на соответствующий принтер IP-адресов через FTP.
Файл может содержать несколько IP-адресов, за которыми следует текст
В показанном примере: сначала идет IP-адрес, оканчивающийся разделителем |(это можно изменить или удалить).Затем у нас есть текст для отправки на принтер, оканчивающийся </labels>
вторым IP-адресом и текст для отправки на этот IP-адрес.Третий IP-адрес и текст для отправки на этот IP-адрес.
12.123.12.123|
<?xml version="1.0" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT="E:HOTDOC.ZPL" _QUANTITY="1" _PRINTERNAME="Printer 1" _JOBNAME="LBL101">
<label>
<variable name="TEXT1">30959</variable>
</label>
<label>
<variable name="TEXT1">30960</variable>
</label>
<label>
<variable name="TEXT1">30961</variable>
</label>
</labels>
12.567.12.123|
<?xml version="1.0" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT="E:HOTDOC.ZPL" _QUANTITY="1" _PRINTERNAME="Printer 1" _JOBNAME="LBL101">
<label>
<variable name="TEXT1">30962</variable>
</label>
<label>
<variable name="TEXT1">30963</variable>
</label>
</labels>
12.890.12.123|
<?xml version="1.0" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT="E:HOTDOC.ZPL" _QUANTITY="1" _PRINTERNAME="Printer 1" _JOBNAME="LBL101">
<label>
<variable name="TEXT1">309625</variable>
</label>
</labels>
В прошлом у нас был один файл для IP-адреса (printer.txt) и отдельный файл для текста (xmlfile.txt).,Я использовал приведенный ниже скрипт.Но теперь у нас есть несколько принтеров, и поэтому нам необходимо добавить IP-адрес в файл, чтобы определить место назначения.
#!/bin/sh
HOST='12.123.12.212'
USER='anonymous'
FILE='/a01/folder/xmlfile.txt'
ftp -n $(cat /a01/folder/printer.txt) /a01/folder/ <<END_SCRIPT
quote USER $USER
put $FILE
quit
END_SCRIPT
exit 0