Bashスクリプト内で "=" の前後にスペースがある時にエラーが出ない理由


Bashのスクリプトで代入する時にうっかり

[code]

    foo = "bar"
    
[/code]

のように`=`の前後にスペースを入れて書いてしまったのですが、`foo`に何も代入されないだけでエラーが起きませんでした。

インタラクティブなbashシェル上で同じ記述をすると

[code]

    bash: foo: command not found
    
[/code]

のエラーになりますが、何が原因でスクリプト中ではエラーを吐かないんでしょうか？




質問では`foo`という変数名を書いたのですが、

エラーが出なかった環境では変数名に`basename`というコマンドとして存在する名前を使っていたため  
`command not found`のエラーが出ずに代入行以降は空白の文字列の入った変数として扱われていたようでした。

質問文になかった情報を含んでしまっていますが質問を閉じるために回答を投稿いたしました。

