У меня есть простая функция в bash script, и я хотел бы передать ему stdout в качестве ввода.
jc_hms(){
printf "$1"
}
Я хотел бы использовать его таким образом.
var=`echo "teststring" | jc_hms`
Конечно, я использовал избыточные функции echo и printf, чтобы упростить вопрос, но вы поняли эту идею. Прямо сейчас я получаю ошибку "не найден", которая, как я полагаю, означает, что мое разграничение параметров неверно (часть "$ 1" ). Любые предложения?
Первоначально функция jc_hms использовалась следующим образом:
echo `jc_hms "teststring"` > //dev/tts/0
но сначала я хочу сохранить результаты в переменной для дальнейшей обработки, прежде чем отправлять ее на последовательный порт.
EDIT: Поэтому, чтобы уточнить, я НЕ пытаюсь печатать материал на последовательном порту, я хотел бы взаимодействовать с моими функциями bash, если "|" характер трубы, и мне интересно, возможно ли это.
EDIT: Хорошо, здесь полная функция.
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`
.