Очень упрощенная версия будет выглядеть примерно так:
2 строки в config. php
:
cat config.php
$variable1 = 'foo with bar';
$variable1 = 'foo2 with bar2';
Установите Bash $ variable1
на последний соответствующий экземпляр $ variable1
в config.php
, на всякий случай, если он был сброшен. Если вы хотите изменить его на первое совпадение, просто измените tail -1
на head -1
в следующем коде:
variable1="$(grep -oE '\$variable1 = .*;' config.php | tail -1 | sed 's/$variable1 = //g;s/;//g')"
Подтвердите переменную Bash через echo
:
echo "$variable1"
'foo2 with bar2'
Обратите внимание, что это в основном работает для строк. Есть много типов переменных PHP, которые нельзя напрямую преобразовать в переменные Bash. Приведенный выше код получит последнюю $ variable1
, указанную в config.php
. Как я уже сказал, если эта переменная была установлена несколько раз, вы можете установить первое или последнее значение, переключив head
или tail
в команде Bash, которая устанавливает переменную.
Вы действительно написали '???hex'? если так, то именно поэтому это не сработало.
Однако наиболее логичным ответом будет то, что вы имеете в виду множество вариантов сопоставления, существующих в picocom. Ваша линия и так в порядке. Я думаю, что ваша версия picocom слишком старая, чтобы иметь доступ к этим функциям.
Например, у меня есть версия 1.7 на raspberry pi, и она также не работает с этими параметрами, однако использование версии 3.1, которая является последней на данный момент, работает нормально.
???
не означает буквально. Предложение The "to hex" mappings (???hex) replace the respective characters with their hexadecimal representation (in square brackets), like this:
на странице руководства относится к
• spchex (map special chars (< 0x20 || 0x7f), excl. CR, LF, and TAB to hex)
• tabhex (map TAB to hex)
• crhex (map CR to hex)
• lfhex (map LF to hex)
• 8bithex (map chars with 8th-bit set to hex)
• nrmhex (map normal ascii chars (0x20 <= c < 0x7f) to hex)
Я думаю, что вы хотите запустить
picocom --imap 8bithex -b 19200 /dev/ttyS0