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.