我是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
答案 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