助け合いフォーラム
LinuC Lv1-101(Ver10.0)
問題ID : 14732
問題を開く
任意の1文字を表すメタキャラクタは次のうちどれか。
正解
?
解説
メタキャラクタとは、シェルによって特別に解釈される文字です。
以下は主なメタキャラクタをまとめたものです。
上表より正解は「?」です。
例)カレントディレクトリにある、ファイル名が「file」で始まり、任意の一文字で終わるファイルを表示
$ ls
file file1 file2 filea fileab
$ ls file?
file1 file2 filea
その他の選択肢については上表をご確認ください。
以下は主なメタキャラクタをまとめたものです。
上表より正解は「?」です。
例)カレントディレクトリにある、ファイル名が「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`」の実行結果は同じです。
以下は主なメタキャラクタとディレクトリ関連の特殊記号をまとめたものです。
例えば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`」の実行結果は同じです。
「`」って何て読むんですか?
r
ruttey
投稿日 2022/09/09
ハネが逆向きはシングルクオーテーションですよね?
2022/09/09 11:28
バッククォートと呼ぶらしいです。私も知りませんでした。調べる機会を与えてくれてありがとうございます。
コメント
この投稿に対して返信しませんか?
r ruttey
2022/09/09 11:52
すっきりしました。ありがとうございます。