Дополнение к *_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