Shell脚本逐行读取文件

时间:2013-01-07 18:28:10

标签: bash shell unix

我是shell scripting的新手。我需要读取一个文件,该文件适用于在其中定义了变量的所有shell。类似的东西:

variable1=test1
variable2=test2
    ....

我必须逐行读取此文件并准备以空格分隔的新字符串,例如:

variable=variable1=test1 variable2=test2 ....

我尝试使用以下代码:

while read LINE
do
$VAR="$VAR $LINE"
done < test.dat

但它给我这个错误:

command not found Test.sh: line 3: = variable1=test1

2 个答案:

答案 0 :(得分:5)

在初始化$之前,您的脚本问题是前导var,请尝试:

#/bin/bash

while read line; do 
    var="$var $line"
done < file

echo "$var"

但是,您可以使用tr命令通过用空格替换换行符来执行此操作。

$ tr '\n' ' ' < file
variable1=test1 variable2=test2

$ var="$(tr '\n' ' ' < file)"

$ echo "$var"
variable1=test1 variable2=test2

答案 1 :(得分:4)

定义shell变量时,必须省略$。所以VAR="bla"是对的,$VAR="bla"是错误的。 $仅在使用变量时是必需的,如echo $VAR;

while read LINE
do
  VAR="$VAR $LINE"
done < test.dat