Section Next | Prev


3.3.3 クォーティショニング

シェルは入力された文字列を解析し、コマンドと引き数に分割します。このとき入力文 字列に、ファイル名に関するメタキャラクタが指定されている場合はファイル名に展開 します。

	[student@h006 ~]$ ls
	a1  a2  a3
	[student@h006 ~]$ echo a*	# a* ではなく aで始まるファイル名に変換される
	a1  a2  a3
しかしメタキャラクタを展開して欲しくない場合があります。 そこで a* は「 a で始まる全ファイル」ではなく、「 a* という文字列」であると 明示的にシェルに伝えるためにダブルコーテーション(") で括ります。
	[student@h006 ~]$ echo "a*"
	a*
このようにシェルに対して、入力文字の解釈を変更させることを クォーティショニングといいます。
クォーティショニングには以下の3つがあります。
クォーティションの種類意味
ダブル(") ファイル名置換の抑制(変数名は置換)
シングル(') 何も置換しない。字面通り
バック (`) コマンドとして実行し、その結果と置換

【クォーティショニングの例】
	[student@h006 ~]$ echo $HOME
	/home/student
	[student@h006 ~]$ ls $HOME
	Mail		mail		def.dat
	UnixWorld 	tdef.dat 	user.djl

  【1】 [student@h006 ~]$ echo $HOME m*
	/home/yakoshi mail mtdef.dat

  【2】 [student@h006 ~]$ echo "$HOME m*"
	/home/yakoshi m*

  【3】 [student@h006 ~]$ echo '$HOME m*'
	$HOME m*

  【4】 [student@h006 ~]$ echo Today is `date`
	Today is 2018年 7月 22日 日曜日 13:08:27 JST
解説
  1. クオーティショニングなし
    変数 $HOME をその値に変換し、m* は存在するファイル名に変換する。
  2. ダブルクォーテーション
    $HOME は置換するが、 "m*" は置換しない。
  3. シングルクォーテーション
    文字列を額面通りに表示する
  4. date コマンドを実行した結果を表示。

Section Next | Prev

Copyright 2007-2018 ycosSystems Shell/Body333.html