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.

Respuestas a la pregunta(6)

Su respuesta a la pregunta