Salida de tubo para función bash
Tengo una función simple en un script de bash y me gustaría canalizar stdout a ella como una entrada.
jc_hms(){
printf "$1"
}
Me gustaría usarlo de esta manera.
var=`echo "teststring" | jc_hms`
Por supuesto, utilicé funciones redundantes echo y printf para simplificar la pregunta, pero entiendes la idea. Ahora mismo recibo un error "no encontrado", que asumo significa que mi delimitación de parámetros es incorrecta (la parte "$ 1"). ¿Alguna sugerencia?
Originalmente, la función jc_hms se usaba así:
echo `jc_hms "teststring"` > //dev/tts/0
pero me gustaría almacenar los resultados en una variable para su posterior procesamiento primero, antes de enviarlos al puerto serie.
EDIT: Así que para aclarar, NO estoy tratando de imprimir cosas en el puerto serie, me gustaría interactuar con mis funciones de bash si el "|" Pipa, y me pregunto si esto es posible.
EDITAR: Muy bien, aquí está la función completa.
jc_hms(){
hr=$(($1 / 3600))
min=$(($1 / 60))
sec=$(($1 % 60))
printf "$hs:%02d:%02d" $min $sec
}
Estoy usando la función para formar una cadena que viene en esta línea de código
songplaytime=`echo $songtime | awk '{print S1 }'`
printstring="`jc_hms $songplaytime`" #store resulting string in printstring
Donde $ songtime es una cadena expresada como "playtime total time" delimitada por un espacio.
Desearía poder hacer esto en una línea y canalizarlo después del awk
printstring=`echo $songtime | awk '{print S1 }' | jc_hms`
al igual que.