CHAPTER 11 · 7 LESSONS · 91 問

スクリプトを書く

打った手順をファイルに書いて、名前で呼べるようにする。

毎回同じ3行を打っているなら、それはもうプログラムだよ。

手順をファイルに書き、1行目に #! を書いて、実行の印を付ける。./setup.sh と打つだけで動くようになる。

  • #! と実行権 … 動くファイルの作り方
  • 変数と引数 … $1 $2 $@
  • iftest … ファイルがあるか、値が同じか
  • for … 並んでいるものを順に処理する
  • while … 条件が続くあいだ繰り返す
  • 終了ステータス … $?&& ||
  • 関数 … 名前を付けてまとめる

もし JavaScript か Python のコースを通っていれば、条件分岐と繰り返しはもう知っているはず。この章で覚えるのは書き方の違いだけだよ。逆にここが最初のプログラミングになる人は、「順に実行される」「条件で分かれる」「繰り返す」の3つが揃えばプログラムだと分かる回になる。

終了ステータスはシェル特有の考え方だから、そこは丁寧にやろう。成功が 0、失敗が 0 以外という逆向きの決まりがあって、それを使って &&(前が成功したら次へ)とつなげるんだ。

この章まで来れば、コマンドラインは「打つところ」から「道具を置いておくところ」に変わるよ。

この章のレッスン

スクリプトと実行権

  1. 58`#!` と実行の印打った手順をファイルに書いて、自分の名前で呼べるようにする。 問題へ
  2. 59引数を受け取る(`$1`)スクリプトのうしろに書いた言葉を、中で使えるようにする。 問題へ

分岐、繰り返し、終了ステータス

  1. 60`if` で分かれる条件を見て、やることを変える。[ がコマンドだと分かると全部つながる。 問題へ
  2. 61`for` で繰り返す並んでいるものを、順に1つずつ取り出して同じことをする。 問題へ
  3. 62`while` と `read`条件が続くあいだ回す。行を1行ずつ、割らずに読む。 問題へ
  4. 63終了ステータスコマンドは必ず成否を返している。それを読み、自分の道具にも付ける。 問題へ
  5. 64関数で名前を付ける手順のかたまりに名前を付けて、何度でも呼ぶ。章11の締め。 問題へ

つぎは「動かし続ける」。決めた時刻に動かす。記録を残す。自分のサーバーにつなぐ。