Zapret: what's new

Дополнение к *_EXTRA.

Похоже, что нельзя адекватно в стандартную шелл переменную засунуть множество аргументов командной строки для вызываемого процесса.
Проблема в пробелах.

Допустим, у нас PKTWS_EXTRA=“–hostcase --hostnospace”
Я передаю эту переменную как есть $PKTWS_EXTRA без кавычек в дочерний процесс.
Получается 2 аргумента. Все хорошо.

но что делать, если PKTWS_EXTRA=“–hostcase --dpi-desync-fake-tls=”/opt/xxxx xxx xxx/fake.bin""

Нельзя никак сделать, чтобы стало 2 аргумента. И так, и сяк пробовал. Нет нормального способа разделить корректно. Будет или 1 аргумент, или огрызки, или будут передаваться кавычки как есть в процесс. А это - неправильно и не сработает.

Возможно, есть решение через какие-то внешние стандартные команды, но скрипт затачивается на огрызочный busybox environment. Там нет ничего advanced. И баша тоже нет.

Решение такое

PKTWS_EXTRA остается
В него можно совать аргументы через пробел, где в отдельно взятом аргументе нет пробелов.
Если пробелы есть или просто так по желанию можно использовать PKTWS_EXTRA_1 , PKTWS_EXTRA_2, … , PKTWS_EXTRA_9

корректно будет так :

PKTWS_EXTRA_1=“–hostcase” PKTWS_EXTRA_2=“–dpi-desync-fake-tls=/opt/xxxx xxx xxx/fake.bin” ./blockcheck.sh

Если у вас cygwin, то обратные слэши не подходят. Надо обратные слэши в пути перевернуть в прямые. Или использовать cygwin пути : /cygdrive/x/path/to/file.bin.
В скриптах для автоматизации конверсии путей надо использовать команду cygpath.
Пример cygpath есть в blockcheck.cmd

Аналогичная схема реализована и для TPWS_EXTRA