"Diary" インターネットさんへの恩返し

いつもソースコードコピペばかりなので,みなさまへ少しばかりの恩返しを

【linux】シェル変数と環境変数の違い(bash/bsh)



スポンサーリンク

linuxのコマンドを一から勉強中。シェル変数と環境変数の違いをメモ。

シェル変数と環境変数の違いは「有効範囲」

シェル変数・・・定義したプログラム内。
環境変数・・・定義された時のセッション内。

参考:Linux - シェル変数と環境変数の違いをコマンドラインで確認する - Qiita

シェル変数

現在実行しているシェルの中だけで有効な変数。

  • シェル変数定義&表示方法
$ test='hello_shell'
$ echo $test
hello_shell

参照するときは変数名の前に"$"を付ける
cshの場合はsetコマンドでシェル変数を設定する。

  • シェル内で定義されている変数一覧表示
$ declare -i
declare -ir BASHPID
declare -ir EUID="1000"
declare -i HISTCMD
declare -i LINENO
declare -i MAILCHECK="60"
declare -i OPTIND="1"
declare -ir PPID="1237"
declare -i RANDOM
declare -ir UID="1000"

....ん”~ testが表示されない。declare -i testってやると追加される。
あとで調べる。

環境変数定義&表示方法

新たなシェルを起動したり、コマンドを実行した場合にも継承される変数です。

$ test='hello_shell'
$ export test
$ printenv test
hello_shell
$ env
・
・
・
・
test=hello_shell
SHLVL=1
HOME=/home/vagrant
LOGNAME=vagrant
SSH_CONNECTION=10.0.2.2 58702 10.0.2.15 22
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
_=/usr/bin/env