bashで定数を使う時の定義のしかた

シェル/bash

bashで定数を使いたい人
「bashでシェルスクリプトを作る時、定数を使いたいです。どのように定義すれば使えるのでしょうか?」

bashで定数を使うには、readonlyを使って定義します。この時、グローバル定数として定義されます。

$ readonly globalMSG="constant message this is."
$ echo $globalMSG
constant message this is.

$ globalMSG="hoge"
bash: x: readonly variable

$ echo $globalMSG
constant message this is.

ローカル定数として定義する

readonlyを使って定義すると、グローバル変数になります。ローカル変数として定義するなら、declare -rを使います。単純にコマンドを実行するのではなく、関数などの構造をもつシェルスクリプトを作る場合にはグローバル変数と使い分けを行います。

$ function f1()
> {
> declare -r localMSG="constant message this is."
> }

$ f1

$ echo $localMSG

$ localMSG="hoge"
$ echo $localMSG
hoge

上の例で、関数f1()でローカル定数として定義されたlocalMSGは関数の外ではスコープの対象外となるため、定数ではなく変数として自由に値を変更することができます。

今回は以上です。お役に立ちましたら幸いです。


今、ITエンジニアは前例のない売り手市場です

ITエンジニアは前例のない売り手市場、転職なら今

現在のエンジニアの求人数と求人倍率をご存知ですか?

直近(※)のIT業界全体の求人倍率は7.85倍です。

つまり 企業が8回 IT人材の求人を出しても、 1人しかエントリーがない 状況です。

エンジニア側が企業を選ぶ なら、今がチャンスです。

※転職サイトdodaが毎月発表している転職求人倍率。
 2019年12月9日発表/集計対象期間は2019年11月1日〜30日

詳しくはこちら


人気記事【今年の抱負】退職しオープン&フリー&シンプルに生きていく【失敗しない働き方改革の本質】