:
今回は「ヌルコマンド(null command)」
: を学ぼう!
ひょっとして
「何もしない」
コマンドかな?
そのとおり!
よくわかったね!
/dev/null とかで
気になって調べたんだ
null は
でもなんで
「何もしない」コマンドが
用意されているんだろうね?
まずは
使い方から
見ていこう!
: [引数]...
どんな引数を指定しても何もせず成功して終了するよ
true と同じということ?そうだね!挙動は
true と一緒だよtrue は: は文脈で
true と : を使い分けるんだね!いくつかの記述には必ずコマンドが必要になるよ制御文
if, for, while での処理のほかグルーピング { ... } , ( ... ) などがあるよ: を書いておけばいいんだ!たとえば以下は成功するまでコマンドを繰り返すよ
while ! コマンド
do
:
done
! で コマンド の終了ステータスを反転させているからコマンド が失敗する限り処理を繰り返し」do ~ done の間に必ず処理を書かないといけないからそこで : を書いているんだね!空ファイル作成を以下のように書くこともあるよ
: > ファイル
何もせず何も出力しないからこうやって空ファイルを作れるんだね
touch と同じかな?実は 「ファイルに記録されている 時刻を修正する」なんだ オプションを指定しないと「最終アクセス時刻と 変更時刻を今に変更する」 という動きをするよ
touch の本当の役割はファイルが存在していなければ空ファイルを作って時刻を設定してくれていたんだ
なので存在しないファイルを指定する場合は
touch と同じだけど存在しているファイルを指定する場合は挙動が違ってくるんだ| コマンド | ファイルの内容 |
|---|---|
touch ファイル | 変化なし |
: > ファイル | 空になる |
: の代わりに何も出力しないコマンドで代用することもできるけど: が一番簡単な指定だよ: の引数に文章を書いてコメントとして使われることもあるんだ: コメント
どんな引数でも何もしないので確かにコメントの代わりに使えるかも
でも
: もコマンドである以上わずかでも処理があるんだ# ではそのようなこともなくコマンドの途中でも使えるよ# は : をコメントとして使う場合の完全上位互換なんだ見かけても「これはコメントなんだな」 と読むようにして自分で書くコメントは
# を使おう!今回はヌルコマンド 「何もしない」ことを 意思表示する所で使うんだ!
: を学んだよ!知らないとスクリプトの中に出てきた
: に戸惑うことになるよヌルコマンドがあることを覚えておこう!