Saída de tubulação para a função bash

Eu tenho como função simples em um script bash e gostaria de canalizar stdout para ele como uma entrada.

jc_hms(){
  printf "$1"
}

Eu gostaria de usá-lo dessa maneira.

var=`echo "teststring" | jc_hms`

Claro que usei funções redundantes echo e printf para simplificar a questão, mas você entendeu. Agora eu recebo um erro "não encontrado", que eu assumo significa que meu parâmetro está errado (a parte "$ 1"). Alguma sugestão?

Originalmente, a função jc_hms era usada assim:

echo `jc_hms "teststring"` > //dev/tts/0

mas gostaria de armazenar os resultados em uma variável para processamento adicional primeiro, antes de enviá-lo para a porta serial.

EDIT: Então, para esclarecer, eu não estou tentando imprimir coisas para a porta serial, eu gostaria de interface para minhas funções bash deve o "|" personagem pipe, e eu estou querendo saber se isso é possível.

EDIT: Tudo bem, aqui está a função completa.

jc_hms(){
  hr=$(($1 / 3600))
  min=$(($1 / 60))
  sec=$(($1 % 60))

  printf "$hs:%02d:%02d" $min $sec
}

Eu estou usando a função para formar uma string que vem esta linha de código

songplaytime=`echo $songtime | awk '{print S1 }'`
printstring="`jc_hms $songplaytime`"  #store resulting string in printstring

Onde $ songtime é uma string expressa como "playtime totaltime" delimitada por um espaço.

Eu gostaria de poder fazer isso em uma linha, e canalizar depois do awk

printstring=`echo $songtime | awk '{print S1 }' | jc_hms`

igual a.

questionAnswers(6)

yourAnswerToTheQuestion