| カッコ展開(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部分のコマンドリストを実行し,その結果をリディレクトしてコマンドへの入力データにする。 |
| 単語の分割(Word Splitting) |
| |
$IFSが定義されていれば,それを区切り文字として使う。定義されていなければ,空白,タブ,改行が単語の区切りとなる。 |
| ファイル名展開(Filename Expansion)/パターンマッチ(実行例) |
*
|
*はどんな文字列とも一致すると見なされ,一致したファイル名に展開される。 |
?
|
?は任意の1文字と一致すると見なされ,一致したファイル名に展開される。 |
[....]
|
[]内のどれか1文字と一致するものがファイル名に展開される。 |
[!....] または
[^....]
|
[]内のどれか1文字と一致しないものがファイル名に展開される。 |
| 引用符の削除(Quote Removal) |
| |
引用が行われなかった引用符(\,',")は取り除かれる。 |