我知道如何使用echo:
将不可打印的字符输入到命令中echo -e '\xde\xad\xbe\xef' | some-cmd
但是如果some-cmd
命令是交互式的并且稍后可能会要求输入怎么办?我希望能够继续输入不可打印的字符作为反斜杠转义序列。
因此,例如,给定以下Python脚本:
#!/usr/bin/env python3
while True:
s = input("> ")
print(s, len(s))
我想通过以下方式与之互动:
$ ./io.py
> \x41
A 1
> \x42
B 1
> \xde
Þ 1
> \xad
\xad 1
即。我输入了转义值,它们在被送入程序之前就被解释了。
答案 0 :(得分:0)
不确定我理解你的确切要求,但也许你想要这个:
$ awk --non-decimal-data '{for(i=1;i<=NF;i++)printf "%c", (0+("0x"$i))}' | some-cmd
然后您可以在提示符下输入由空格/制表符/换行符分隔的十六进制值 样品用法:
$ awk --non-decimal-data '{for(i=1;i<=NF;i++)printf "%c", (0+("0x"$i))}' | sponge | sed '1s/^/Output:\n/'
40
30 31 41
a 61 62 a
Output:
@01A
ab
答案 1 :(得分:0)
while read -r line; do echo -e $line; done | some_cmd