[ ] [ ] [ ] [ トップページ ] [ 目次 ] [ ファイル/ディレクトリのモード設定方法 ] [ 正規表現 ] [ 基本的なコマンド ] [ シグナル ] [ Bashリファレンス ] [ Viリファレンス ]  
[ コマンド行入力編集 ] [ 展開/置換 ] [ リディレクション ] [ 制御構造 ] [ 式と演算 ] [ 組込みコマンド ] [ ヒストリ ] [ ジョブ制御 ] [ シェル変数 ] [ setコマンド ] [ その他 ]
[ 展開/置換の例 ]

展開/置換

カッコ展開(Brace Expansion)(実行例
{文字列1,文字列2,...}
{}内の文字が左から順に置き換えに使われる。
チルダ展開(Tilde Expansion)(実行例
~
$HOMEの内容と置き換わる。
~ユーザ名
ユーザ名のホームディレクトリと置き換わる。
~+
$PWDと置き換わる。
~-
$OLDPWD
~N
ディレクトリスタックのN番目のエントリと置き換わる。dir +Nの実行結果と同じ。(2.02)
~+N
~Nと同じ。(2.02)
~-N
dir -Nと同じ。(2.02)
シェルパラメータ(Shell Parameter)
name=value
適当な名前に値を代入したもの(パラメータ)が変数と似たような役割を果たす。
$N
ポジショナルパラメータ(起動時に与えられたパラメータ)を番号で表す。$0がコマンド名,$1が最初のパラメータ,$2が2番目のパラメータ,と表す。
$*
"$*"は"$1c$2c$3c....."と同じ。cはセパレータ(IFSの値の最初の文字)。
$@
"$@"は"$1" "$2" "$3" ....と同じ。
$#
ポジショナルパラメータの数。
$?
直前に実行したコマンドの返り値。
$-
オプションフラグに展開される。
$$
スプリプトを実行するプロセスID。
$!
最後に実行されたバックグラウンドプロセスのプロセスID。
$_
最後に実行されたコマンドの最後の引数。
シェルパラメータ展開(Shell Parameter Expansion)
${parameter:-word}
parameterがセットされていないかnull値の場合に,wordを展開した値が展開値となる。それ以外は,parameterの値が展開値となる。
${parameter:=word}
parameterがセットされていないかnull値の場合に,wordがparameterに代入され,その後展開される。それ以外は,parameterの値が展開値となる。この展開はポジショナルパラメータやスペシャルパラメータには適用されない。
${parameter:?word}
parameterがセットされていないかnull値の場合に,wordが標準エラー出力に出力されてシェルは終了する(インタラクティブシェルの場合は終了しない)。それ以外は,parameterの値が展開値となる。
${parameter:+word}
parameterがセットされていないかnull値の場合は何も展開されない。それ以外は,wordが展開値となる。
${parameter:offset}
${parameter:offset:length}
 
${#parameter}
parameterの長さが展開値となる。parameterが'*'や'@'の場合は,パラメータの数に展開される。
${parameter#word}
${parameter##word}
 
${parameter%word}
${parameter%%word}
 
${parameter/pattern/word}
${parameter//pattern/word}
 
コマンド置き換え(Command Substitution)
$(command) または
`command`
commandの実行結果(標準出力への出力内容)と置き換わる。
算術展開(Arithmetic Expansion)
$(( expression ))
expressionの計算結果と置き換わる。
たとえば,nが10であれば,$(( $n + 5 ))は15と置き換わる。
プロセス置き換え(Process Substitution)
<(list)
>(list)
list部分のコマンドリストを実行し,その結果をリディレクトしてコマンドへの入力データにする。
単語の分割(Word Splitting)
  $IFSが定義されていれば,それを区切り文字として使う。定義されていなければ,空白,タブ,改行が単語の区切りとなる。
ファイル名展開(Filename Expansion)/パターンマッチ(実行例
*
*はどんな文字列とも一致すると見なされ,一致したファイル名に展開される。
?
?は任意の1文字と一致すると見なされ,一致したファイル名に展開される。
[....]
[]内のどれか1文字と一致するものがファイル名に展開される。
[!....] または
[^....]
[]内のどれか1文字と一致しないものがファイル名に展開される。
引用符の削除(Quote Removal)
  引用が行われなかった引用符(\,',")は取り除かれる。
 

  
WB00806_.gif (471 バイト)
Copyright(C) 1997-1999 GlassCom
webmaster@glasscom.com