シェルスクリプトで変数を波括弧で囲まず直後に日本語だと文字化け

変数の書き方は3種類あるが…

シェルスクリプトでの変数の書き方は3種類ある。

t="foo"
echo $t     #foo
echo "$t"   #foo
echo "${t}" #foo

単独で使用するならどれを使用しても結果は同じだが、変数の語尾に日本語がある場合は文字化けしてしまうため、ドル波括弧${t}で記述する必要ある。
変数の語尾に日本語がある場合は文字化けしてしまうため、ドル記号と波括弧${t}で記述する

# 下記は文字化けする
echo "1: item1"
echo "2: item2"
while :
do
  read -p: t
    case "$t" in
      1) echo "$tを選択";;
      2) echo "$tを選択";;
      *) break;;
    esac
done

中級者以上でもわりとやってしまいがちな凡ミスなので注意が必要。