Fishの基礎 - エスケープシーケンス

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

コマンドラインには、直接書き込めない文字が存在する。
そのような文字は、エスケープシーケンスを使用して記述することができる。


エスケープ文字

  • \a
    アラート文字
  • \e
    エスケープ文字
  • \f
    フィード文字
  • \n
    改行文字
  • \r
    キャリッジリターン
  • \t
    水平タブ
  • \v
    垂直タブ
  • \xHH
    16進数で指定された値を持つASCII文字
    例えば、\x9はタブ文字のことである。
  • \XHH
    HHに16進数を入力することにより、指定された値を持つ1バイトのデータを表す。
    マルチバイトエンコーディングを使用している場合、無効な文字列の入力に使用されることがある。
  • \ooo
    oooに8進数を入力することにより、指定された値を持つASCII文字を表す。
    例えば、\011はタブ文字のことである。
  • \uXXXX
    XXXXに16進数を入力することにより、指定された値を持つ16ビットUnicode文字を表す。
    例えば、\u9はタブ文字のことである。
  • \uXXXXXXXX
    XXXXXXXXに16進数を入力することにより、指定された値を持つ32ビットUnicode文字を表す。
    例えば、\U9はタブ文字のことである。
  • \cX
    Xにアルファベットを入力することにより、コントロールキーと指定した文字を押下した時に発生する制御シーケンスを表す。
    例えば、\ciはタブ文字のことである。


いくつかのエスケープ文字は、Fishにとって特別な意味を持つ。
例えば、アポストロフィ'は展開を無効にするキーワードである。
しかし、これらの特殊文字を通常の文字として使用する場合、バックスラッシュ\でエスケープする必要がある。

echo \'hello world\'

# 出力例
'hello world'


特殊文字とエスケープシーケンスを、以下に示す。

  • \
    スペース文字をエスケープする。
    これにより、Fishはエスケープされたスペースで引数を分割することはない。
  • \$
    ドル文字をエスケープする。
  • \\
    バックスラッシュをエスケープする。
  • \*
    アスタリスクをエスケープする。
  • \?
    クエスチョンマークをエスケープする。
    ただし、qmark-noglob機能フラグが有効な場合は不要である。
  • \~
    チルダ文字をエスケープする。
  • \#
    シャープ文字をエスケープする。
  • \(
    左括弧をエスケープする。
  • \)
    右括弧をエスケープする。
  • \{
    左中括弧をエスケープする。
  • \}
    右中括弧をエスケープする。
  • \<
    左ブラケットをエスケープする。
  • \>
    右ブラケットをエスケープする。
  • \^
    キャレットをエスケープする。
  • \&
    アンパサンドをエスケープする。
  • \|
    バーティカルバーをエスケープする。
  • \,
    セミコロン文字をエスケープする。
  • \"
    引用符をエスケープする。
  • \'
    アポストロフィをエスケープする。