私はこのようなコードを持っています
#! /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."
また、;
割り当てラインの終わりは必要ありません。