シェルスクリプトのif文で詰まった話

不慣れなシェルスクリプトで「変数strが空なら文字列を代入する」というコードを書こうと思い、以下のようなコードを記述。

#!/bin/bash

read -p "answer > " str
if [$str = ""]; then
    str="string"
fi
echo $str

実行結果 :

$ bash test.sh
answer > aaa
test.sh: 行 4: [aaa: コマンドが見つかりません
aaa

最後の echo はちゃんと動作してるし、いいんだけどさあ... そんなわけで解決法。

#!/bin/bash

read -p "answer > " str
if [ $str = "" ]; then
    str="string"
fi
echo $str

if 文の [] 野中は、ちゃんとスペースを空けましょう、という話でした
シェルスクリプトでは空白が結構大事なんで注意しましょう