GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Datei in Array einlesen?

Wie kann ich die Datei im Shell-Skript lesen und dann jede Zeile einer Variablen zuweisen, die ich später verwenden kann, (denke an eine Möglichkeit, eine Standardeinstellung aus der Datei zu laden)

Ich versuche es schon:

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

Akzeptierte Antwort:

Für Konfigurationszwecke ist es wahrscheinlich am einfachsten, die Parameter in der Konfigurationsdatei in Bash-Syntax zu definieren und später mit . /path/to/config .

Beispiel default.cfg :

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

Beispiel script.sh :

#!/bin/bash

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

echo $parameter_a
echo $parameter_b
echo "$parameter_c"

...

Wenn Ihnen dieser Ansatz nicht gefällt, können Sie die Zeilen auch in ein Array einlesen:

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

Um auf die Elemente zuzugreifen, würden Sie dann ${array[index]} verwenden , z. B.:

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

(Wobei ${#array[*]} ist die Größe des Arrays.)

Lesen Sie hier mehr über Arrays in Bash.


Ubuntu
  1. Busy Box Datei zeilenweise lesen?

  2. Linux Array in separate Variablen aufteilen?

  3. Problem mit schreibgeschütztem Dateisystem?

  4. Dateiberechtigungen unter Linux – Lesen/Schreiben/Ausführen

  5. Liest Werte aus einer Pipe in eine Shell-Variable ein

So lesen Sie Dateien Zeile für Zeile in Bash

So lesen Sie eine Datei Zeile für Zeile in Bash

So lesen Sie eine Datei mit Leerzeichen in Linux

So schreiben Sie Daten in eine Datei unter Linux

Wie teilt man eine MP3-Datei?

Wie Echo in Datei