お兄ちゃん!
Program Files
ディレクトリを
消せないんだ!
rmdir Program Files
実行すると「 「 って2回怒られちゃうよ!
Program
というディレクトリは存在しない」Files
というディレクトリは存在しない」今回は文字の特殊な意味を打ち消す「クォート(quote)」を学ぼう! 名詞で「クォーテーション(quotation)」とも呼ぶよ
これで名前にスペースが含まれるファイルも扱えるんだね?
\
最初は「バックスラッシュ( だよ Windows では
\
)」¥
の半角記号になるよこれは直後1文字の特殊な意味を打ち消してくれるんだスペースは「コマンドの要素の区切り」という 特殊な意味を持っているんだ
スペースの前にバックスラッシュを追加してみようそうするとスペースはその特殊な意味を失って「これはただの文字です」という扱いになるんだ
rmdir Program\ Files
おっ!ちゃんと
Program Files
ディレクトリを消せたよ!スペースを含むファイル名は扱いが難しくなるんだね
そうだねなるべく避けた方がいいけどスペースを含むファイル名は少なからずあるものなんだ
こういう時はクォートして区切りの意味を失わせてあげよう
"
自分のファイルを調べていたらスペースを何個も含むファイル名があったよ!
これって全てのスペースの前にバックスラッシュを指定しないといけないんだよね?ちょっと面倒かも…
それなら「ダブルクォート( で ファイル名を囲んであげようその間にあるスペースは全て普通の文字として扱われるよ
"
)」5, 6, 7, 8.mp3
」5_6_7_8.mp3
」名前を変えるのは
mv
だったよねコマンドは mv
を使うことにしよう!そして
mv
の引数にスペースが含まれていればそれをダブルクォートで囲ってあげるんだmv "5, 6, 7, 8.mp3" 5_6_7_8.mp3
お兄ちゃん!ちゃんと名前変更ができたよ!
ダブルクォートは「ゆるい」クォートなんだ スペースやワイルドカードなどの意味を失わせるけど他の大部分の特別な意味後で紹介する変数やコマンド展開などの意味は失わせないんだ
なのでスペースなどを普通の文字として扱いつつ便利な機能は使いたいそんな欲張りなクォートがダブルクォートだよ
'
ダブルクォートは「ゆるい」 クォートと言っていたよねじゃあ「きつい」クォートもあるんだ?
もちろんあるよ!それが「シングルクォート( なんだ
'
)」使い方はダブルクォートと一緒だけどシングルクォートとバックスラッシュ以外の全ての文字の意味を失わせるよ
シングルクォートで囲めば大抵は「囲んだ文字列そのもの」の意味になるんだ! 特殊な記号を多く扱っている場合でもそのままの文字列で扱って欲しい時に便利そうだね
後で紹介する「正規表現」は そのような記号をたくさん使うんだ正規表現はシングルクォートで囲むことが多いよ
ダブルクォートやシングルクォートを使えば0文字である「空文字」を表現できるんだ
空文字を扱えるとどんなことができるのかな?
引数が必ず必要なコマンドがあったとしようこれまでの考えでこのコマンドに空文字を渡そうとするとこう書くよね
コマンド
これは引数が無いのと全く同じ書き方になっちゃうね
このような場合以下のようにしてあげると空文字を引数に指定できるんだ
コマンド ""
今回は「クォート」を学んだよ! 特殊な意味になってしまう文字を普通の文字として扱えるようにするんだね!
特にシングルクォートやダブルクォートで「ひとまとまり」とすることは これからも良く登場するよ必要な場合に使えるようこれらのクォートに慣れておこう!