助け合いフォーラム

LinuC

LinuC Lv1-101(Ver10.0)
問題ID : 14732
問題を開く
任意の1文字を表すメタキャラクタは次のうちどれか。

正解

?

解説

メタキャラクタとは、シェルによって特別に解釈される文字です。

以下は主なメタキャラクタをまとめたものです。


上表より正解は「?」です。

例)カレントディレクトリにある、ファイル名が「file」で始まり、任意の一文字で終わるファイルを表示
$ ls
file file1 file2 filea fileab
$ ls file?
file1 file2 filea

その他の選択肢については上表をご確認ください。

参考

メタキャラクタは、シェルによって特別に解釈される文字です。

以下は主なメタキャラクタとディレクトリ関連の特殊記号をまとめたものです。


例えばechoコマンドの引数に「*」を指定した場合、シェルは「*」を表示せずカレントディレクトリの内容を表示します。これは、シェルが「*」をメタキャラクタとして特別に認識するためです。

$ echo *
file1 file2

シェルがメタキャラクタを通常の文字として扱う(メタキャラクタをエスケープする)ためには、以下のような方法があります。

・「\」(環境によっては「¥」が表示される)をメタキャラクタの直前に付ける

$ echo \*
*

・「'」でメタキャラクタまたはメタキャラクタを含む文字列を囲む

$ echo '*'
*

・「"」でメタキャラクタまたはメタキャラクタを含む文字列を囲む

$ echo "*"
*

なお、「"」で囲まれた「$」、「`」、「\」、「"」は文字ではなくメタキャラクタとして扱われます。

例)
$ DATE=date
$ echo "$DATE"
date

「"」で囲まれていても「$」はメタキャラクタとして扱われるため、「$DATE」とは表示されず、変数に格納されている値が表示されます。
つまり、「echo "$DATE"」と「echo $DATE」の実行結果は同じです。

例)
$ echo "`date`"
2012年 1月 12日 木曜日 15:00:40 MST

「"」で囲まれていても「`」はメタキャラクタとして扱われるため、「`date`」とは表示されず、dateコマンド(現在の日付と時刻を表示)の実行結果が表示されます。
つまり、「echo "`date`"」と「echo `date`」の実行結果は同じです。
上に戻る

「`」って何て読むんですか?

投稿日 2022/09/09

ハネが逆向きはシングルクオーテーションですよね?

2022/09/09 11:28

バッククォートと呼ぶらしいです。私も知りませんでした。調べる機会を与えてくれてありがとうございます。

https://hi-ho.jp/support/faq/ans/003575.php


コメント

r ruttey

2022/09/09 11:52

すっきりしました。ありがとうございます。

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?