2013-01-07 102 views
4

我是shell scripting的新手。我需要讀取一個文件,該文件可以在所有定義了變量的shell中運行。喜歡的東西: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 

回答

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 
4

定義shell變量時,您必須省略$。所以VAR="bla"是對的,$VAR="bla"是錯的。 $僅用於使用變量,如echo $VAR;

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