script - Pasando datos binarios como argumentos en bash
shell script linux español (5)
¿Qué tal esto?
$ script "`printf "/x02/xc5/xd8"`"
Necesito pasar datos binarios a un programa de bash que acepte argumentos de la línea de comandos. ¿Hay alguna forma de hacer esto?
Es un programa que acepta un argumento:
script arg1
Pero en lugar de la cadena arg1
, me gustaría pasar algunos bytes que no son buenos caracteres ASCII, en particular, los bytes 0x02
, 0xc5
y 0xd8
.
¿Cómo hago esto?
Bash no es bueno para tratar con datos binarios. Recomendaría usar base64 para codificarlo y luego decodificarlo dentro del script.
Editado para proporcionar un ejemplo:
script "$(printf ''/x02/xc5/xd8'' | base64 -)"
Dentro del guión:
var=$(base64 -d -i <<<"$1")
Guarda tus datos binarios en un archivo, luego haz:
script "`cat file`"
Use el estilo de cotización $''''
:
script $''/x02/xc5/xd8''
Prueba:
printf $''/x02/xc5/xd8'' | hexdump -C
00000000 02 c5 d8
script "`printf "/x02/xc5/xd8"`"
script "`echo -e "/x02/xc5/xd8"`"
prueba:
# echo -n "`echo -e "/x02/xc5/xd8"`" | hexdump -C
00000000 02 c5 d8 |...|