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.