4

我是新手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
4

2 回答 2

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
于 2013-01-07T18:38:44.003 回答
4

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

while read LINE
do
  VAR="$VAR $LINE"
done < test.dat
于 2013-01-07T18:56:41.307 回答