Linux(Linux Essentials)7-2.シェル変数と環境変数

今回紹介するのは以下
・シェル変数について(メタキャラクターとワイルドカード
環境変数について






■シェル変数について
・有効範囲:変数を設定したシェル
・設定:変数名=値 (※「=」の前後にスペースは無し)
・表示:echo $変数名 (※環境変数も同じ)
・削除:unset 変数名 (※環境変数も同じ)


メタキャラクターの扱い
・「'(シングルクォーテーション)」で囲む:囲まれた部分を文字列とみなす
 ⇒変数名='$文字列'では、「$文字列」をそのまま表示
・「"(ダブルクォーテーション)」で囲む:囲まれた部分を文字列とみなすが、例外として「$」「`」「\」「"」がある
 ⇒変数名="$文字列"では、設定された変数が表示される
・「`(バッククォーテーション)」で囲む:囲まれた文字列や格納された値をコマンドとみなす





シェルのワイルドカード
・*(アスタリスク):0文字以上の文字列(先頭のピリオドを除く)
・?:任意の一文字(先頭のピリオドを除く)
・[]:カッコ内のいずれか一致する1文字
 ⇒[1-9]:1~9のいずれか1文字
 ⇒[a-z]:アルファベット小文字a~zのいずれか1文字
 ⇒[!a-z]:アルファベット小文字a~zを除く1文字(※「!」で一致しない文字を指定)
・\(またはバックスラッシュ):直前のメタ文字を普通の文字として扱う





主なシェル変数
・HISTSIZE:ヒストリー機能で記憶する行数
・HISTFILE SIZElヒストリー機能でファイルに保存する行数
・PS1:プロンプト文字(1行目
PS2:プロンプト文字(継続行
・BASHOPTS:指定されているbashのオプション
・$0:起動されたコマンド名
・$1~$9、${n}:対応する数字の位置の引数(※位置パラメーター)
・$@:全ての引数のリスト
・$#:引数の個数
・#?:直前に実行したコマンドの終了ステータス
・$$:実行中のシェルのプロセスID


環境変数について
・有効範囲:変数と設定したシェル、および以降起動するシェルやコマンドやアプリケーション
 ⇒シェル変数のごく一部が環境変数として使用できる
・設定:export 変数名=値、export シェル変数
 ⇒まずシェル変数を作成してから、exportコマンドで環境変数として設定する事も可
・表示:echo $変数名 (※シェル変数も同じ)
・削除:unset 変数名 (※シェル変数も同じ)


主な環境変数
・PATH:コマンドを検索するディレクトリを設定
 ⇒シェルのコマンドの実行を指示して、ここに含まれているディレクトリからコマンドを順に探して実行
 例⇒PATH=$PATH:格納先ディレクト
・HOME:ユーザーのホームディレクト
PWD現在の作業ディレクト
・TZ:タイムゾーン情報
・USER/LOGNAME:ユーザーアカウント情報
・LANG:ロケール言語情報や文字コード
・HOSTNAME:ホスト名
・SHELL:シェルのフルパス名