Вы можете использовать команду stty
, чтобы установить такие параметры.
Это покажет все настройки для первого последовательного порта (замените ttyS0
на ttyUSB0
при использовании последовательного порта USB):
stty -F /dev/ttyS0 -a
Это установит скорость передачи на 9600, 8 бит, 1 стоповый бит, без контроля четности:
stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb
Одна вещь, которая обычно сбивает с толку, - это то, что большинство драйверов последовательного интерфейса сбрасывают настройки до значений по умолчанию после закрытия устройства (т. Е. Ни один процесс больше не открывает устройство). Таким образом, приведенная выше команда stty
установит настройки, а когда это будет сделано, драйвер снова их сбросит. Если сначала программное обеспечение POS открывает устройство, а затем выполняет настройки stty
, они должны оставаться до тех пор, пока программное обеспечение POS не закроет устройство снова (например, при выходе).
Я бы подумал, что программное обеспечение POS должно иметь возможность самостоятельно настраивать эти параметры. Если вы пишете собственное программное обеспечение для управления принтером, сначала откройте устройство, а затем выполните команду stty
.
Возможно, вам также придется поэкспериментировать с другими настройками, например opost
означает, что будет выполнена постобработка вывода. Если установлены оба параметра opost
и onlcr
, то onlcr
вызовет добавление дополнительного возврата каретки (0xd) при выводе байта новой строки (0xa), обычно для предотвращения печати лестницы, такой как
This is a line
This is the next line
Это может быть, а может и не быть тем, что вам нужно. Если вы хотите выводить на принтер необработанный однозначный вывод, выключите opost
(добавьте -opost
к параметрам stty
).
Подтверждение связи (управление потоком) также контролируется с помощью stty
, не зная больше о принтере, я не могу сказать, нужно ли вам что-либо устанавливать.
Дополнительную информацию можно найти на странице руководства stty
.
Вот как работает рекурсивная опция -r
в 7z
, это рекурсивный поиск по шаблону.
7z a -r "$backupfilename" \*.ini \*.cfg \*.txt
7z
отлично создает zip-файлы.
Вы также можете использовать опцию multi -arg для find
, если у вас почему-то нет 7zip,
find suan \( -name \*.cfg -o -name \*.txt -o -name \*.ini \) \
-exec zip -r "$backupfilename" {} +
Использование find
иzip
:
find "$wdir" -type f '(' -name '*.cfg' -o -name '*.txt' -o -name '*.ini' ')' \
-exec zip -r "$backupfilename" {} +
В качестве альтернативы вы можете сначала разрешить свой скрипт cd
в "$wdir"
, а затем использовать .
в команде find
, в зависимости от того, какой путь вы хотите сохранить в архиве.
Это позволит найти все соответствующие файлы и заархивировать их в файле резервной копии.
В качестве альтернативы bash
, если файлов не тысячи:
set -s globstar nullglob dotglob
cd "$wdir" && zip -r "$backupfilename" **/*.ini **/*.cfg **/*.txt
Задаваемые здесь параметры оболочки включают **
глобус (, который маскирует пути ), расширяет нерасширенные глобусы до пустой строки и сопоставляет глобусы со скрытыми файлами.