Wyjście rury do funkcji bash

Mam prostą funkcję w skrypcie bash i chciałbym potraktować stdout jako wejście.

jc_hms(){
  printf "$1"
}

Chciałbym go użyć w ten sposób.

var=`echo "teststring" | jc_hms`

Oczywiście użyłem funkcji nadmiarowych echo i printf, aby uprościć pytanie, ale masz pomysł. W tej chwili pojawia się błąd „nie znaleziono”, który, jak zakładam, oznacza, że ​​granice parametrów są nieprawidłowe (część „$ 1”). Jakieś sugestie?

Pierwotnie użyto funkcji jc_hms w następujący sposób:

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

ale chciałbym najpierw zapisać wyniki w zmiennej do dalszego przetwarzania, przed wysłaniem ich do portu szeregowego.

EDYCJA: Aby wyjaśnić, NIE próbuję drukować rzeczy do portu szeregowego, chciałbym interfejs do moich funkcji bash powinien być „|” fajka i zastanawiam się, czy to możliwe.

EDYCJA: Dobra, oto pełna funkcja.

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

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

Korzystam z funkcji, aby utworzyć ciąg, który pochodzi z tego wiersza kodu

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

Gdzie $ songtime jest ciągiem wyrażonym jako „całkowity czas odtwarzania” ograniczony spacją.

Chciałbym po prostu zrobić to w jednej linii i potokować po awk

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

tak.

questionAnswers(6)

yourAnswerToTheQuestion