GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Lire le fichier dans le tableau ?

Comment puis-je lire un fichier dans un script shell, puis attribuer chaque ligne à une variable que je peux utiliser plus tard ,,, (je pense à charger un paramètre par défaut à partir du fichier)

j'ai déjà essayé :

process (){

}

FILE=''
read -p "Please enter name of default file : " FILE

if [ ! -f $FILE  ]; then

    echo "$FILE : does not exists "
    exit 1
elif [ ! -r $FILE  ]; then

    echo "$FILE : can not read "
fi

exec 0<"$FILE"
n=0
while read -r line
do
   (assign each line to an variable) 
done

Réponse acceptée :

À des fins de configuration, il est probablement plus facile de définir les paramètres dans le fichier de configuration dans la syntaxe bash et de les sourcer ultérieurement en utilisant . /path/to/config .

Exemple default.cfg :

parameter_a=100
parameter_b=200
parameter_c="Hello world"

Exemple script.sh :

#!/bin/bash

# source the default configuration
. /path/to/default.cfg

echo $parameter_a
echo $parameter_b
echo "$parameter_c"

...

Si vous n'aimez pas cette approche, vous pouvez également lire les lignes dans un tableau :

while read line
do
    array+=("$line")
done < some_file

Pour accéder aux éléments, vous utiliseriez alors ${array[index]} , par exemple :

for ((i=0; i < ${#array[*]}; i++))
do
    echo "${array[i]}"
done

(Où ${#array[*]} est la taille du tableau.)

En savoir plus sur les tableaux dans bash ici.


Ubuntu
  1. Boîte occupée lire le fichier ligne par ligne ?

  2. Tail lit-il tout le fichier ?

  3. Comment lire une variable à partir d'un fichier ?

  4. Problème de système de fichiers en lecture seule ?

  5. Autorisations de fichiers sous Linux – Lecture/Écriture/Exécution

Comment lire des fichiers ligne par ligne dans Bash

Comment lire un fichier ligne par ligne dans Bash

Comment lire un fichier avec des espaces sous Linux

Comment écrire des données dans un fichier sous Linux

Comment diviser un fichier MP3 ?

Comment faire écho dans le fichier