Вывод труб в функцию bash

У меня такая же простая функция в скрипте bash, и я хотел бы направить stdout к нему в качестве входных данных.

jc_hms(){
  printf "$1"
}

Я бы хотел использовать это таким образом.

var=`echo "teststring" | jc_hms`

Конечно, я использовал избыточные функции echo и printf для упрощения вопроса, но вы поняли идею. Прямо сейчас я получаю & quot; не найден & quot; ошибка, которая, как я полагаю, означает, что разделение моего параметра неверно (часть «$ 1»). Какие-либо предложения?

Первоначально функция jc_hms использовалась следующим образом:

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

но я хотел бы сохранить результаты в переменной для дальнейшей обработки, прежде чем отправлять ее на последовательный порт.

РЕДАКТИРОВАТЬ: Поэтому, чтобы уточнить, я НЕ пытаюсь напечатать материал на последовательный порт, я хотел бы подключиться к моим функциям bash, если & quot; | & quot; характер трубы, и мне интересно, если это возможно.

РЕДАКТИРОВАТЬ: Хорошо, вот полная функция.

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

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

Я использую функцию, чтобы сформировать строку, которая идет этой строкой кода

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

Где $ songtime - это строка, выраженная как «время воспроизведения итого»; ограничен пробелом.

Я хотел бы просто сделать это в одну строку, и труба после awk

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

вот так.

Ответы на вопрос(6)

Ваш ответ на вопрос