GNU/Linux >> Znalost Linux >  >> Ubuntu

Číst soubor do pole?

Jak mohu číst soubor ve skriptu shell, pak přiřadit každý řádek proměnné, kterou mohu použít později ,,,(přemýšlím o tom, jak načíst výchozí nastavení ze souboru)

už to zkouším :

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

Přijatá odpověď:

Pro účely konfigurace je pravděpodobně nejjednodušší definovat parametry v konfiguračním souboru v bash syntaxi a později je získat pomocí . /path/to/config .

Příklad default.cfg :

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

Příklad script.sh :

#!/bin/bash

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

echo $parameter_a
echo $parameter_b
echo "$parameter_c"

...

Pokud se vám tento přístup nelíbí, můžete také číst řádky do pole:

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

Pro přístup k položkám byste pak použili ${array[index]} , např.:

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

(Kde ${#array[*]} je velikost pole.)

Přečtěte si více o polích v bash zde.


Ubuntu
  1. Zaneprázdněná schránka Číst soubor řádek po řádku?

  2. Čte Tail celý soubor?

  3. Linux rozděluje pole do samostatných proměnných?

  1. Problém souborového systému pouze pro čtení?

  2. Oprávnění souborů v Linuxu – čtení/zápis/spouštění

  3. Jak připojím text k souboru?

  1. Jak vyčistit přípony souborů?

  2. Jak zapsat soubor do jiného?

  3. Neblokující získat charakter