读文件到数组

读文件到数组

我怎样才能读取 shell 脚本中的文件,然后将每一行分配给稍后可以使用的变量,(我正在考虑从文件加载默认设置的方式)

我已经尝试过:

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

答案1

出于配置目的,最简单的方法可能是使用 bash 语法定义配置文件中的参数,然后使用. /path/to/config.

例子默认配置文件

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

例子脚本

#!/bin/bash

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

echo $parameter_a
echo $parameter_b
echo "$parameter_c"

...

如果您不喜欢这种方法,您也可以将这些行读入数组:

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

要访问您将使用的项目${array[index]},例如:

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

${#array[*]}数组的大小是多少。)

了解有关 Bash 中数组的更多信息这里

答案2

c=0 # counter
# read whole file in loop
while read line
do
  textArray[$c]=$line # store line
  c=$(expr $c + 1) # increase counter by 1
done < $FILE
# get length of array
len=$(expr $c - 1 )

# use for loop to reverse the array
for (( i=$len; i>=0; i-- ));
do
  echo ${textArray[$i]}
done

相关内容