/usr/bin/bash: Difference between revisions

Line 1,347: Line 1,347:
keyname:function-nameまたはmacroという形式を使う場合、keynameは英語で綴られたキーの名前である。 例えば:
keyname:function-nameまたはmacroという形式を使う場合、keynameは英語で綴られたキーの名前である。 例えば:


<code>
<syntaxhighlight lang="bash">
               Control-u: universal-argument
               Control-u: universal-argument
               Meta-Rubout: backward-kill-word
               Meta-Rubout: backward-kill-word
               Control-o: "> output"
               Control-o: "> output"
</code>
</syntaxhighlight>


上記の例では、C-uは関数universal-argumentに、M-DELは関数backward-kill-wordに、C-oは右辺で表現されたマクロを実行する(つまり、テキスト``> output''を行に挿入する)ためにバインドされている。
上記の例では、C-uは関数universal-argumentに、M-DELは関数backward-kill-wordに、C-oは右辺で表現されたマクロを実行する(つまり、テキスト``> output''を行に挿入する)ためにバインドされている。
Line 1,357: Line 1,357:
2番目の形式である "keyseq":function-nameまたはmacroでは、keyseqは上記のkeynameとは異なり、キーシーケンス全体を表す文字列を二重引用符で囲んで指定することができる。  以下の例のように、GNU Emacsスタイルのキーエスケープを使うことができるが、記号文字名は認識されない。
2番目の形式である "keyseq":function-nameまたはmacroでは、keyseqは上記のkeynameとは異なり、キーシーケンス全体を表す文字列を二重引用符で囲んで指定することができる。  以下の例のように、GNU Emacsスタイルのキーエスケープを使うことができるが、記号文字名は認識されない。


<code>
<syntaxhighlight lang="bash">
               "\C-u": universal-argument
               "\C-u": universal-argument
               "\C-x\C-r": re-read-init-file
               "\C-x\C-r": re-read-init-file
               "\e[11~": "Function Key 1"
               "\e[11~": "Function Key 1"
</code>
</syntaxhighlight>


この例では、C-uは再び関数universal-argumentにバインドされている。 C-x C-rは関数re-read-init-fileに束縛され、<nowiki>ESC [ 1 1 ~</nowiki>はテキスト``Function Key 1''を挿入するために束縛される。
この例では、C-uは再び関数universal-argumentにバインドされている。 C-x C-rは関数re-read-init-fileに束縛され、<nowiki>ESC [ 1 1 ~</nowiki>はテキスト``Function Key 1''を挿入するために束縛される。


GNU Emacsスタイルのエスケープシーケンス一式は以下の通りである。
GNU Emacsスタイルのエスケープシーケンス一式は以下の通りである。
<code>
<syntaxhighlight lang="bash">
               \C-    control prefix
               \C-    control prefix
               \M-    meta prefix
               \M-    meta prefix
Line 1,373: Line 1,373:
               \"    literal "
               \"    literal "
               \'    literal '
               \'    literal '
</code>
</syntaxhighlight>


GNU Emacsスタイルのエスケープシーケンスに加えて、2つ目のバックスラッシュエスケープのセットが利用できる:
GNU Emacsスタイルのエスケープシーケンスに加えて、2つ目のバックスラッシュエスケープのセットが利用できる:
<code>
<syntaxhighlight lang="bash">
               \a    alert (bell)
               \a    alert (bell)
               \b    backspace
               \b    backspace
Line 1,387: Line 1,387:
               \nnn  the eight-bit character whose value is the octal value nnn (one to three digits)
               \nnn  the eight-bit character whose value is the octal value nnn (one to three digits)
               \xHH  the eight-bit character whose value is the hexadecimal value HH  (one  or  two  hex digits)
               \xHH  the eight-bit character whose value is the hexadecimal value HH  (one  or  two  hex digits)
</code>
</syntaxhighlight>


マクロのテキストを入力する際には、マクロ定義を示すために一重引用符または二重引用符を使用しなければならない。 引用符で囲まれていないテキストは関数名とみなされる。 マクロ本文では、前述のバックスラッシュエスケープが展開される。 バックスラッシュは、" や ' を含め、マクロテキスト内の他の文字を引用符で囲む。
マクロのテキストを入力する際には、マクロ定義を示すために一重引用符または二重引用符を使用しなければならない。 引用符で囲まれていないテキストは関数名とみなされる。 マクロ本文では、前述のバックスラッシュエスケープが展開される。 バックスラッシュは、" や ' を含め、マクロテキスト内の他の文字を引用符で囲む。