>>840 man bashでわかると思うけど基本的には
$1 = ${1}
$var = ${var}
なぜ{}で囲むかというと
${var}abcde
のように変数名とその他の部分を明確に区分するため
$varabcde
じゃvarabcdeという変数名として扱われてしまう
あと10番目以降のシェル引数のように$のあとにくる数字が
2桁以上になる場合も{}で囲んで${10}のようにする必要がある
まぁそれ以外の場合は{}はあってもなくてもどっちでもいいん
だけど 習慣として常に{}で囲む人もいるかもね