Bashでファイルに変数を追加することは機能しません。

Bashでファイルに変数を追加することは機能しません。

私はこのようなコードを持っています

#! /bin/bash

$version = "1.0";
$preffix = "ApplicationName.";

for f in pack*;
do
    echo "bla bla bla" > myFile.txt
    echo $preffix >> myFile.txt
    echo "more stuff" >> myFile.txt
    echo $version >> myFile.txt
done;

出力は次のとおりです

bla bla bla

more stuff

$ versionと$ prefixはmyFile.txtに追加されません...なぜですか?

答え1

このプログラムは、プログラムが次の機能を実行していない場所で動作します。

#!/bin/bash

version="1.0";
preffix="ApplicationName.";

for f in pack*;
do
    echo "bla bla bla" > myFile.txt
    echo $preffix >> myFile.txt
    echo "more stuff" >> myFile.txt
    echo $version >> myFile.txt
done;

空間への愛はプログラムを読みやすくしますが、同時に実行不可能にします。

また、このプログラムではこれは重要ではありませんが、次のことをお勧めします。

#!/bin/bash

version="1.0";
preffix="ApplicationName.";

for f in pack*;
do
    echo "bla bla bla" > myFile.txt
    echo "$preffix" >> myFile.txt
    echo "more stuff" >> myFile.txt
    echo "$version" >> myFile.txt
done;

これは、次のようなことを行うためです。

version='1  2'

元のプログラムでは予期しない結果が発生します。このような不明なエラーを避けるために、変数の周りに引用符を付けることは本当に良い考えです。

答え2

変数の前の記号は、$変数を読み取るために使用されます。

これを割り当てるにはシンボルを省略する必要があります$。つまり:

version="1.0"
preffix="ApplicationName."

また、;割り当てラインの終わりは必要ありません。

関連情報