分かりそうで分からないシェル変数と環境変数を整理しました。
概要
シェル変数:実行中のシェル内で有効な変数。子プロセスでは利用不可
環境変数:実行中のシェル内と子プロセス(シェルから実行されたコマンド)で有効な変数。
変数設定時の書式
・=の前後にスペースは利用不可
・変数名は英字、数字、アンダーバーを利用できる
・先頭の文字に数字は利用不可
・大文字と小文字は区別される
・値にスペースが入る場合は以下の引用符で囲む
'(シングルクオーテーション)
"(ダブルクォーテーション)
`(バッククォーテーション)
引用符
シングルクォーテーション
全て文字列になる。
ダブルクォーテーション
文字列内に変数がある場合、変数の内容が展開される。
展開させたくない場合は先頭に/を利用する
`eeee
バッククォーテーション
バッククォーテーション内にコマンドがあれば、そのコマンドが実行される。
展開させたくない場合は先頭に/を利用する
シェル変数を設定する
書式
変数名=値
例
var='Hello World'
echo シェル変数を確認する
書式:
echo $変数名
例
#echo $var
Hello World
unset シェル変数を解除する
書式
unset 変数名
例
unset var
環境変数を設定する
書式
export 変数名
例
#export linux='Hello linux'
#echo $linux
Hello linux
env 変数を確認する。実行対象のコマンドに一時的な環境変数を設定して実行する
例:引数無しで実行すると全ての環境変数が表示されます
#env
~全て環境変数が表示される~
printenv 環境変数の一覧を表示
例:引数無しで実行すると全ての環境変数が表示されます
#printenv
~全て環境変数が表示される~
例:引数有り。
#export linux='Hello linux'
#printenv $linux
Hello linux
set シェル変数と環境変数の一覧を表示する
例:
#set
~全て環境変数が表示される~
よく利用する環境変数
linux上で定義されている環境変数です
変数名 | 説明 |
---|---|
EDIOR | 既定のエディタのパス |
HISTFAILE | コマンド履歴を格納するファイル |
HISTFILESIZE | HISTFILEに保存する履歴数 |
HISTSIZE | コマンド履歴の最大値 |
HOME | カレントユーザのホームディレクトリ |
HOSTNAME | ホスト名 |
LANG | ロケール |
LOGNAME | ログインシェルのユーザ名 |
PATH | コマンドやプログラムを検索するディレクトリリスト |
PS1 | プロンプトの表示文字列 |
PS2 | 複数行にわたる入力時のプロンプト |
PWD | カレントディレクトリ |
TEAM | 端末の種類 |
USER | 現在のユーザー |