変数を正しくエクスポートしたいです。これを行うには、さまざまな構文バリエーションを理解する必要がありました。変数をエクスポートする次のメカニズムを見ました。この場合は、以下を使用してください.bashrc
。
export MY_VARIABLE=$USER/.gradle
--$export MY_VARIABLE="$USER/.gradle"
- 引用符export MY_VARIABLE=USER/.gradle
--いいえ$export $MY_VARIABLE=$USER/.gradle
--すべて$
この場合、$記号は何を意味しますか?なぜ時々使用され、時には使用されないのですか?
パスにスペースがない場合は引用符が必要ですか? $USERに含まれるパスにスペースが含まれている場合はどうなりますか?
エクスポートの左側に$がないのはなぜですか?
答え1
export
、その他のタグはdeclare
明示的に変数名をパラメータとして使用します。 $
一般的に「~の価値」という意味で理解すると、「~$variable
の価値variable
」という意味になります。次のコマンドセットを実行します。
foo=bar
bar=baz
export $foo
( echo "$foo" )
ここで何が起こるのかは、空行の出力を得ることです。これはexport
、コマンドに実際に(の値)$foo
があるため、実際に実行されるコマンドがあるためです。エクスポートされないので、デフォルトはnullです。ただし、最後の行が次のような場合:bar
foo
export bar
foo
( echo "$bar" )
次のサブシェルに編集されたbaz
値を含む出力が得られます。bar
export
"
通常、弱い引用符(" ")を使用することをお勧めします。みんな変数参照の理由には、前述の理由(ファイル名やパスのスペースなど)が含まれますが、これに限定されません。たとえば、次のような場合があります。
if [ $letter == a ]; then echo "ayyyy"; fi
しかしletter
、それらはすべて空であり、シェルは実行しようとします。
if [ == a ]
これは構文エラーですが、引用符があります。
if [ "$letter" == a ];
~になる
if [ "" == a ];
これはうまくいきます。