diff options
author | Peter Wu <peter@lekensteyn.nl> | 2014-03-29 16:08:39 +0100 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2014-03-29 16:08:39 +0100 |
commit | fe7edfe3a3d2e5fb47ea8349e30ebcd3190fd18e (patch) | |
tree | 1d5f41ba2a92e784c8475f25aad70021650e2a71 /shell | |
parent | 222301408bef7dfda449eaf22180fe6927a418a1 (diff) | |
download | ltunify-fe7edfe3a3d2e5fb47ea8349e30ebcd3190fd18e.tar.gz |
shell: extend with string functionality
Diffstat (limited to 'shell')
-rwxr-xr-x | shell | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -22,6 +22,9 @@ as in the following (non-meaningful) example: In this case, the message is padded with '0xff'. +The data can also be interleaved with chars by starting an argument +with a underscore (_). For example, "_foo" is equivalent to "66 6f 6f". + This function does not show replies, use the 'read-dev-usbmon' program instead. HELP @@ -34,6 +37,8 @@ HELP fi for arg; do + # clear the fill char, makes only sense as last argument + fillchar= if [[ $arg =~ ^(0[xX])?[0-9a-fA-F]{1,2}(\.\.)?$ ]]; then byte=${arg#0[Xx]} byte=${byte%..} @@ -42,6 +47,9 @@ HELP # extend with last byte [[ $arg != *.. ]] || fillchar=$byte + elif [[ $arg =~ ^_ ]]; then + # Literal string + bytes+=( $(echo -n "${arg#_}" | xxd -ps | fold -w2) ) else echo "Invalid argument: $arg" return 1 |