Shell.変数





シェル変数


DESC シェル変数とはシェルの動作をきめるパラメータのこと。
SHELL LANG
DESC 各ツールが内部で起動するシェルを指定する。
SHELL=/usr/bin/bash # make は /usr/bin/bash をコマンドの実行に使用する。 make all
# 代入.するときはスペースは不要 ( perl と間違えないように ) var=val # 参照(変数展開)するときは [$] echo $var; # 変数名の範囲を明示しても良い echo ${var}
ignoreeof : c-d | logout を防止. -> set -o ignoreeof -> c-d -> Use "logout" to leave shell 環境変数 ENV とは 全 Process が参照できる global な値( 属性 ) export してね # 次のように考える. bash も 1 Program void bash() { while( exit ) { # export した. global GWORK="c:/work"; # VarLcl なので見れない. LWORK="c:/work"; # 子 PS から GWORK が見れる mycmd(); test.sh(); } } WARNING ps 起動後に Export した ENV は追加されない 子 PS は 親 PS の環境(ENV)をうけつぐ


種類


(.) 組み込みシェル変数 EX : PS1, (.) シェル変数 (.) 環境変数( コマンドから参照できる変数 ) == PATH、HOME、export VAR=test;



Shell.変数 一覧


DESC tool が出力する coding system( この文字code使ってね - )
SHELL=ja_JP.SJIS( make,gcc が文字化けを起こすので注意 )



環境変数


シェル、任意のコマンドに値を渡すときに利用する変数。 あるプロセスで設定された環境変数は子プロセスでも利用できる。 しかし親プロセスや別プロセスは参照できない。
# 変数を環境変数にするには export を使う。 export testvar="test"; # 定義されたことを確認する。 set | grep testvar



特殊変数


$0 シェルスクリプト名 $1 ・・・, ${10}・・・ 1番目から9番目の引数、10番目以降の引数(2桁の場合は{}で囲む) $# 引数の数 $@ 又は $* 全ての引数のリスト $$ プロセス番号 $? 直前のコマンドの実行結果(正常終了時に0が代入される) $- シェルに与えられたオプション PS1 : prompt string \w: \@ \l \u


変数は文字列として処理


test=1 test=$test+1 // echo $test -> 1+1 # 整数として宣言 declare -i test test=1 test=$test+1 # RET; 2 echo $test



shellVar.とは.shell の動作を制御する属性


SYNTAX var=val unset var=val readonly var set -+o var // tgl DESC shellVar は user , tgl, shell 自動設定の 3 種類あり. set -o で一覧表示 POINT BASH_ENV : shell init file BASH_VERSION : bash version braceexpand : brace 展開 CDPATH : cd 検索 path set -o emacs : emacs 方式による cmdline 入力 EUID : UsrCur ID GROUPS : GrpCur ID IFS : cmd 区切り文字 LINENO : 現在行 PPID : prt IDPS REPLY : read で読まれた行 read; BAD read i; IGNOREEOF : c-d による shell 終了を抑止する回数 IGNOREEOF=n SECONDS : shell 起動時間 FIGNORE : 指定した file末尾 の file 展開しない これ便利 . FIGNORE=_bk GLOBIGORE : path 展開をする際の 無視する list


ShellScriptの汎用的な扱い


continue : while, foreach