J'ai une fonction simple dans un bash script et je voudrais lui faire passer stdout comme entrée.
jc_hms(){
printf "$1"
}
J'aimerais l'utiliser de cette manière.
var=`echo "teststring" | jc_hms`
Bien sûr, j'ai utilisé les fonctions redondantes echo et printf pour simplifier la question, mais vous comprenez l'idée. Actuellement, j'obtiens une erreur "not found", ce qui signifie, je suppose, que la délimitation des paramètres est incorrecte (la partie "$1"). Avez-vous des suggestions ?
À l'origine, la fonction jc_hms était utilisée comme suit :
echo `jc_hms "teststring"` > //dev/tts/0
mais je voudrais d'abord stocker les résultats dans une variable pour un traitement ultérieur, avant de les envoyer sur le port série.
EDIT : Pour clarifier, je n'essaie PAS d'imprimer des trucs sur le port série, je voudrais interfacer mes fonctions bash avec le caractère pipe "|", et je me demande si c'est possible.
EDIT : Très bien, voici la fonction complète.
jc_hms(){
hr=$(($1 / 3600))
min=$(($1 / 60))
sec=$(($1 % 60))
printf "$hs:%02d:%02d" $min $sec
}
J'utilise la fonction pour former une chaîne de caractères qui vient cette ligne de code
songplaytime=`echo $songtime | awk '{print S1 }'`
printstring="`jc_hms $songplaytime`" #store resulting string in printstring
Où $songtime est une chaîne exprimée comme "playtime totaltime" délimitée par un espace.
J'aimerais pouvoir faire ça en une seule ligne, et l'envoyer après l'awk.
printstring=`echo $songtime | awk '{print S1 }' | jc_hms`
comme ça.