Bash スクリプト内で定数を定義するには、readonly コマンドを使用します。
readonly を使うことで、変数や関数を読み取り専用に設定でき、誤って値を変更したり削除したりすることを防げます。
下記のように実行すると、指定した変数や関数に対する代入や unset ができなくなります。
readonly my_var # 変数 my_var を readonly に
readonly -a my_arr # 配列 my_arr を readonly に
readonly -f my_func # 関数 my_func を readonly に
変数の定義と同時に readonly 指定することも可能です。
readonly USERNAME=maku
下記の例では、変数 MAX_SIZE を値 100 で初期化し、その後 200 という値を代入しようとしています。
#!/bin/bash
readonly MAX_SCORE=100
MAX_SCORE=200MAX_SCORE 変数は readonly 化されているので、代入を実行しようとしたときにエラーになります。
$ ./sample.sh
./sample.sh: 行 4: MAX_SCORE: 読み取り専用の変数です