シェルスクリプト 変数 使い方

バイオインフォ道場、くまぞうです。

シェルスクリプト 変数

スポンサーリンク



シェルスクリプト 変数 名前のつけ方と定義

シェルで変数を使うとき、最初に注意することです。

  • 名前には、アルファベット(大/小文字を区別)・数字・アンダースコアを使える。
  • 名前には、1文字目に数字は使えない。
  • 名前には、アルファベットの大文字を使うのが慣例。
  • シェル変数に値をセットするとき、空白は入れない。
# アルファベット(大文字/小文字区別)・数字・アンダースコアを使える OK
$ MY_VAR123=1
$ echo $MY_VAR123
1

# アルファベット(大文字/小文字区別)・数字・アンダースコアを使える NG
$ MY-VAR=1
MY-VAR=1: コマンドが見つかりません

# シェル変数の名前には、1文字目に数字は使えない
$ 1MYVAR=1
1MYVAR=1: コマンドが見つかりません

# シェル変数に値をセットするとき、空白は入れない
$ MYVAR = 2
MYVAR: コマンドが見つかりません

シェルスクリプト 変数 値の参照方法

シェル変数に格納した値を参照する場合は、変数の前に$をつけます。名前が判別しにくい(長い・他の変数と間違えそう等)場合は、中括弧で括る書き方(${var})が便利です。

# 変数に値をセット
$ MY_VAR123=1

# 変数にセットした値を参照
$ echo $MY_VAR123
1
 
# 変数にセットした値を参照({}で囲んでも同じ)
$ echo ${MY_VAR123}
1

# 変数を参照して文字列連結
$ echo "MY_VAR123 = "${MY_VAR123}
MY_VAR123 = 1

$ MY_STR="ABC"
$ echo ${MY_STR}DEF
ABCDEF

# 変数MY_STRとDEF(文字列のつもり)を区別できず、別の変数と判別された
$ echo $MY_STRDEF

シェルスクリプト 変数 展開

文字列内で変数を展開する(”abcde $変数 fg” など)したい場合は、ダブルクォーテーションで囲めば変数を展開することができます。シングルクォーテーションで囲むと、ただの文字と判断されてしまい、変数を展開することができません。

# 文字列内で変数を展開
$ echo "abcde $MY_STR fg"
abcde ABC fg

# 文字列内で変数を展開({}で囲んでも同じ、区別しやすい)
$ echo "abcde${MY_STR}fg"
abcdeABCfg

# 文字列内で変数を展開できない(シングルクォーテーションで囲んだ場合)
$ echo 'abcde $MY_STR fg'
abcde $MY_STR fg

シェルスクリプト 変数について

シェル変数の名前のつけ方は、他のプログラミング言語に似ているところがあります。しかし、慣例では「アルファベット大文字を使う」となっているので、メンテナンスなどを考えた場合、それに習う方が無難と思われます。

注意が必要なのは、値を代入するときの=前後のスペース。スペースを入れないように注意しましょう。はじめのうちは、これに関するミスが一番多いと思います。値の参照をしたいときは$を変数名の前につけます。場合によっては、中括弧をつける方法で記述すると変なエラーを防げるかもしれません。

文字列内で変数を展開したい場合は、ダブルクォーテーション内なのかをチェックします。

スポンサーリンク





ピックアップ記事

  1. R 使い方 グラフの色 自作のカラーパレットとデフォルトのカラーパレット

    グラフを描画する際、色の組み合わせを1つ1つ考えるのは面倒ですよね。Rには、あらかじめ色の組み合わ…
  2. awk split サンプルでわかる列の分割とセパレータ(文字・正規表現)の指定方法

    awkのsplit関数は、セパレータを指定して文字列を分割することができます。セパレータには文字や…
  3. awk if サンプルでわかる条件文の書き方 一致・大小比較・正規表現を簡潔に書く方法

    awkのif条件文は、条件によって処理をわけたいときに使います。条件式では、0の判定・関係演算子・…

人気記事

  1. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…
  2. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  3. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…

おすすめ記事

  1. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…
  2. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  3. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…