Ce script doit simplement append une valeur à un tableau à travers une boucle, puis afficher tous les éléments d'un tableau.
#!/bin/bash data_file="$1" down=() counter=0 cat $data_file | while read line; do \ isEven=$(( $counter % 2 )) if [ $isEven -eq 0 ]; then down+=("$line") fi (( counter ++ )) done echo ${down[@]} exit
Mais tout ce que je vois est une string vide:
host@user$ sh script.sh data_file host@user$
Le data_file
contient ceci:
81.11 11.63 81.11 11.63 81.11 11.63 81.11 11.63
Où est mon erreur? Merci.
Vous ne pouvez pas referencer les mises à jour variables effectuées dans le process enfant (canal connecté pendant le blocage).
Au lieu de cela, alimente datatables en utilisant la redirection d'input comme ceci:
#!/bin/bash data_file="$1" down=() counter=0 while read line; do isEven=$(( $counter % 2 )) if [ $isEven -eq 0 ]; then down+=("$line") fi (( counter ++ )) done < $data_file echo ${down[@]} exit