4

私は初めてshell scriptingです。変数が定義されているすべてのシェルで機能するファイルを読み取る必要があります。何かのようなもの:

variable1=test1
variable2=test2
    ....

このファイルを 1 行ずつ読み取り、次のようにスペースで区切られた新しい文字列を準備する必要があります。

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

シェル変数を定義するときは、$ を省略する必要があります。そうVAR="bla"です、$VAR="bla"間違っています。$ は、次のように変数を使用する場合にのみ必要ですecho $VAR

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