スクリプトに変数を渡す

スクリプトに変数を渡す

違いは何ですか:

./script.sh "$VARIABLE"

そして

./script.sh ${VARIABLE}

あなたはいますか?

答え1

$VARIABLE違う言葉だと${VARIABLE}実際には同じです。ただし、特にスクリプトでは次の例を参照してください。

VARIABLE=USER
echo $VARIABLE

あなたは出力を得る

USER

しかし、入力したとき

echo $VARIABLE1

取得すると予想

USER1

VARIABLE1変数が定義されていないため、何も取得できません。

しかし、もしあなたが使うなら

echo ${VARIABLE}1

期待される結果を得ますUSER1

答え2

Sean J. Goffによる投稿:$VAR対${VAR}と引用

VAR=$VAR1 は VAR=${VAR1} の簡略化されたバージョンです。 2つ目はできますが、1つ目はできません。たとえば、配列インデックス参照(移植可能ではない)や部分文字列の削除(POSIX - 移植可能)などがあります。 Bash初心者ガイドの「変数の詳細」セクションとPOSIX仕様のパラメータ拡張を参照してください。

rm -- "$VAR1" や rm -- "${VAR}" など、変数の周りに引用符を使用することをお勧めします。これは変数の内容を原子単位にします。変数の値に空白(デフォルトでは空白の$ IFS特殊変数の文字)またはワイルドカード文字が含まれていて、引用符を付けないと、各単語はファイル名の生成(ワイルドカード)と見なされ、その拡張子が生成されます。何をしても。

関連情報