J'ai un problème avec la commande bc. La sortie générée est:Erreur de syntaxe Commande Bash bc
(standard_in) 2: syntax error
Ici, je poste mon code, toutes les suggestions seront appréciées.
value="100%" # the threshold to cause a break out
kb="kB/s"
mb="MB/s" # strings to mask out
conversor=1024 # kb->mb conversion
contador=0 # initalize our total in megabytes
for ((x=3; x<=${#array[@]}; x+=5)); do
paraula=${array[$x]};
if [[ $paraula =~ .*kB.* ]]; then
paraula=${paraula%$kb}
paraula=$(echo "scale=4; $paraula/$conversor" | bc) # convert to $mb
contador=$(echo "scale=4; $contador+$paraula" | bc)
echo "Counting: "$contador
else
paraula=${paraula%$mb}
contador=$(echo "scale=4; $contador+$paraula" | bc)
echo "Counting: "$contador
fi
if [[ " ${array[$x]} " =~ " $value " ]]; then
break;
fi
echo "Value : ${array[$x]} ";
done
echo "final value: $contador"
alors, l'erreur sur le terminal après l'exécution du script est
Pouvez-vous simplifier cela à un [mcve]? Vous pouvez probablement obtenir la même erreur à partir d'une seule ligne de code qui ne fait qu'appeler 'bc'. –
Envisagez d'utiliser 'bash -x yourscript' pour consigner tout ce que fait le script, pour trouver l'endroit où il se trompe d'abord. Si vous voulez que le suivi soit un peu plus facile, vous pouvez attribuer une valeur à 'PS4' qui comprend le numéro de ligne; par exemple, tous sur une ligne, vous pouvez exécuter: 'PS4 = ': $ {LINENO} +' bash -x votre script'. (Notez que pour des raisons de sécurité, 'PS4' doit être défini dans votre script lui-même dans de très nouvelles versions de bash si ce script est exécuté en tant que root). –
BTW, s'il vous plaît ajouter les journaux ci-dessus demandé comme texte à la question, pas de captures d'écran. Voir la réponse acceptée à [Pourquoi ne pas télécharger des images de code sur SO lorsque vous posez une question?] (Https://meta.stackoverflow.com/a/285557/14122) –