$ PS3の設定は効果がありません。

$ PS3の設定は効果がありません。

変更しようとしていますが、PS3次のスクリプトを実行すると新しい値が表示されることが予想されます。

select i in red blue green exit
do
  case $i in
    red) echo "Red";;
    blue) echo "Blue";;
    green) echo "Green";;
    exit) exit;;
  esac
done

その後、PS3の値を変更します。

PS3=">"

ただし、スクリプトを実行すると#?デフォルト値が使用されます。

ここに画像の説明を入力してください。

私が何を見逃しているのかよくわかりません。使用できる値に制限はありますか?

答え1

スクリプトを実行するサブシェルが新しい値を表示できるように変数をエクスポートします。

export PS3='>'
./select.sh

または、単にスクリプト用に設定してください。

PS3='>' ./select.sh

関連情報