bash等のB-sh系シェルでは 変数定義 コマンド ... とすることで、一時的に「環境変数を定義」して「コマンド」を実行します。 VERSION=2; echo ${VERSION} は、 VERSION=2 echo ${VERSION という2つのコマンドを順次実行するものです。 現在実行しているシェルで変数VERSIONに2が設定されます。 VERSION=2 echo ${VERSION} は、一時的にVERSION=2を設定して、echo ${VERSION}を実行する、という1つのコマンドです。 これを VERSION=5 echo ${VERSION} などとしても、現行シェルのVERSIONは元のままです。 ただ、この場合、やはり出力は「2」になります。それは、このコマンドラインの実行の流れとして、まず${VERSION}が展開され「VERSION=5 echo 2」が