root@ubuntu:~# declare -a list_distro root@ubuntu:~# declare -a list_distro=("Ubuntu" "Debian" "Red hat") ou root@ubuntu:~# list_distro=() root@ubuntu:~# list_distro=("Ubuntu" "Debian" "Red hat") Les indices seront assignés automatiquement et séquentiellement.
root@ubuntu:~# declare -A array_translate root@ubuntu:~# declare -A array_translate=(['un']="one" ['deux']="two" ['trois']="three" ['quatre']="four")
root@ubuntu:~# animaux="chat chien lapin" root@ubuntu:~# list_animaux=( ${animaux// / } ) root@ubuntu:~# echo ${list_animaux[@]} chat chien lapin root@ubuntu:~# jours="lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche" root@ubuntu:~# list_jours=( ${jours//,/ } ) root@ubuntu:~# echo ${list_jours[@]} lundi mardi mercredi jeudi vendredi samedi dimanche root@ubuntu:~# lettres="a|z|e|r|t|y" root@ubuntu:~# list_lettres=( ${lettres//|/ } ) root@ubuntu:~# echo ${list_lettres[@]} a z e r t y
### define array array_file=() array_file=("file1" "file2" "file3" "file4") ### list array values for file_name in "${array_file[@]}"; do echo "file_name=\"${file_name}\"" done ### join array to string with space separator file_name_string=$( printf "%s.txt " "${array_file[@]}" ) ### remove last space from string file_name_string=${file_name_string%?} echo "file_name_string=\"${file_name_string}\"" file_name="file1" file_name="file2" file_name="file3" file_name="file4" file_name_string="file1.txt file2.txt file3.txt file4.txt"
root@ubuntu:~# echo ${#list_distro[@]} 3 root@ubuntu:~# echo ${#array_translate[@]} 4
root@ubuntu:~# echo ${!list_distro[@]} 0 1 2 root@ubuntu:~# echo ${!array_translate[@]} un deux trois quatre
root@ubuntu:~# echo ${list_distro[@]} Ubuntu Debian Red hat root@ubuntu:~# echo ${array_translate[@]} one two three four root@ubuntu:~# for (( i=0; i<${#list_distro[@]}; i++ )); do echo "$i=${list_distro[$i]}" done 0=Ubuntu 1=Debian 2=Red hat root@ubuntu:~# for distro in "${list_distro[@]}"; do echo "distro=${distro}" done distro=Ubuntu distro=Debian distro=Red hat root@ubuntu:~# for key in ${!array_translate[@]}; do echo "$key=${array_translate[$key]}" done un=one deux=two trois=three quatre=four
root@ubuntu:~# echo ${list_distro[1]} Debian
root@ubuntu:~# echo ${list_distro[1]:0:3} Deb
root@ubuntu:~# echo ${list_distro[@]:1} Debian Red hat
root@ubuntu:~# echo ${list_distro[@]:0:2} Ubuntu Debian
root@ubuntu:~# echo ${array_translate['trois']} three
Obtenir la taille du tableau: root@ubuntu:~# range=${#list_distro[@]} Obtenir un indice aléatoire (http://tldp.org/LDP/abs/html/randomvar.html): root@ubuntu:~# list_idx_random=${RANDOM} root@ubuntu:~# echo ${list_idx_random} 27772 Reduire cet indice aléatoire à la taille du tableau: root@ubuntu:~# let "list_idx_random %= ${range}" root@ubuntu:~# echo ${list_idx_random} 1 Extraire la valeur de l'indice aléatoire: root@ubuntu:~# echo ${list_distro[${list_idx_random}]} Debian
root@ubuntu:~# list_distro[2]="OpenBSD" root@ubuntu:~# echo ${list_distro[@]} Ubuntu Debian OpenBSD
root@ubuntu:~# echo ${list_distro[0]} ${#list_distro[0]} Ubuntu 6
root@ubuntu:~# list_distro=( "${list_distro[@]}" "AIX" "HP-UX" ) root@ubuntu:~# echo ${list_distro[@]} Ubuntu Debian OpenBSD AIX HP-UX
root@ubuntu:~# list_distro=( "FreeBSD" "${list_distro[@]}" ) root@ubuntu:~# echo ${list_distro[@]} FreeBSD Ubuntu Debian OpenBSD AIX HP-UX
root@ubuntu:~# list_new_distro=( "${list_distro[@]}" ) root@ubuntu:~# echo ${list_new_distro[@]} FreeBSD Ubuntu Debian OpenBSD AIX HP-UX
root@ubuntu:~# list_updated_distro=( "${list_distro[@]/AI*/}" ) root@ubuntu:~# echo ${list_updated_distro[@]} FreeBSD Ubuntu Debian OpenBSD HP-UX
root@ubuntu:~# list_final_distro=( ${list_distro[@]/HP-UX/Gentoo} ) root@ubuntu:~# echo ${list_final_distro[@]} FreeBSD Ubuntu Debian OpenBSD AIX Gentoo
root@ubuntu:~# unset list_distro[4] L'indice ET la valeur ont été supprimés du tableau: root@ubuntu:~# echo ${!list_distro[@]} 0 1 2 3 5 root@ubuntu:~# echo ${list_distro[@]} FreeBSD Ubuntu Debian OpenBSD HP-UX Pour ré-ordoner les indices du tableau: root@ubuntu:~# list_distro=( "${list_distro[@]}" ) root@ubuntu:~# echo ${!list_distro[@]} 0 1 2 3 4 root@ubuntu:~# echo ${list_distro[@]} FreeBSD Ubuntu Debian OpenBSD HP-UX
root@ubuntu:~# unset list_distro root@ubuntu:~# unset list_distro[@] root@ubuntu:~# unset list_distro[*]