返る}グローバル変数との見分けが付きにくい場合、命名ルールによって分けるのも手です。私はグローバル変数はアッパーケース、ローカル変数はスネークケースといった命名にしています。中に書いたコマンドはサブシェル上で実行されます。サブシェル内の副作用は親シェルには影響しないという性質を利用すると部分的にスコープを切ることが出来ます。一時的にカレントディレクトリを移動して何か処理をしたいとしましょう。面白い使い方として、関数でさえもスコープの中に閉じ込めることができます。シェルスクリプトにおける関数はスコープの概念が希薄ですが、サブシェルで関数スコープを強化するような使い方もできます。サブシェルには起動コストがあるので、そのまま呼び出すよりは多少遅くなるという点は留意してください。メインロジックを関数化するグローバルスコープの汚染を防ぐことができます。メインロジックのテストがしやすくなるといったメリットがあります。something}main高級言語の力を借りるもはや高級言語っぽく書くという域を超えて、部分的に他の高級言語の力を借りるという手段もあります。内のオブジェクトのキー名の一覧を取り出したいときは以下のように書けます。あれば大体どこの環境でも入ってると思うのでおすすめです。Qiita)コマンドなのか構文なのかを意識してみるシェルスクリプトにはあたかも構文かのように擬態したコマンドが多数存在しています。これを知っておくと文法上の細かいルールの理解が深まります。表示され、本当にコマンドであることが分かります。赤文字がコマンド、緑文字がコマンド引数、その他の黒文字がシェル構文ということになります。以降が実行されるかどうか決まるということです。エラーとなってしまいます。コマンドではありません。スペースは入れられません。var=123このあたりを知っておくと、なぜ文法上でスペース有無のルールがあちこちで違うのか、理解が深まることと思います。しているとエラー時にスクリプトが終了するようになり便利ですが、個別にエラーハンドリングをしたい時は工夫して行う必要が出てきます。記事にまとめましたので参考にしてみてください。シェルスクリプトには例外機構はありません。ようなことは出来なくもないですが、コマンドや関数レベルのエラーハンドリングについては終了ステータスを見て一つ一つ地道にやっていく必要があります。シェルスクリプトで難しいことの一つがパイプラインのエラーハンドリングです。各パイプコマンドの終了ステータスを得るためにパイプラインを分解したりする必要はありません。配列変数にまとめて入るので、これを参照することで個別にエラーハンドリングも可能です2。0自分のためにもヘルプは書く書きましょう。見られるということは、シェルを扱う人たち共通のプロトコルになっています。スクリプトを使う人のためでもありますし、今後そのスクリプトをメンテナンスする自分のためでもあります。スクリプトのパラメータは一箇所で取り出すコマンドラインオプションのパースは煩雑な処理になりがちなので、スクリプト序盤でまとめてやってしまうといいです。コード例は長くなるので次のサンプルコードを見てください。取り入れた全体像のサンプルテンプレートです。メイン関数を呼び出しそちらで処理をするmainシェルスクリプトは沼シェルスクリプトの嫌なところ。書く度によりベターな記法の発見があるため書き方のスタイルが全く安定しないこと。過去に書いたものをリファクタリングすることを無限に繰り返している気がする。長くなりましたが以上です。シェルスクリプトはたのしい。提供されるようになりました。公式サイトからのダウンロードをおすすめします。この記事の内容は古い情報となりますが、当時の方法として残しておきます。東京都が配布する「防災ブック」とは東京都は発災時の対処法や日頃の備えについてわかりやすくまとめた防災ブック「東京防災」を配布しています。都民でなくとも役立つ防災情報も多くまとめられています。ねとらぼ本は以下の内容で構成されています。TOKYO“X”DAY(かわぐちかいじ氏オリジナル漫画)ダウンロードしておこうと思った発端のツイート2018年8月〜9月にかけて近畿地方を中心に25年ぶりの「非常に強い」勢力の台風の上陸と、北海道全域が停電する事態になった最大震度7の地震の発生と非常に大きな災害が続きました。Wikipediaそんな中でこんなツイートがありました。停電中に「東京防災」を一家に一冊おいておけばいいワンということを前に誰かが言っていたのを思い出したという内容です。これをみてダウンロードしとこうと思いました。自分の経験を書いておきます。つながらなくなりました。そんなとき感じたことが2つありました。防災ブックの配布ページ「防災ブック」は以下のサイトからダウンロードできます。防災ブックの一括ダウンロードもしインターネットが使えなくなっても見られるように全てダウンロードしておくといいと思います。ダウンロードするのが面倒です。まとめてくれている人いるかもしれませんが、自分は以下のシェルコマンドで一括ダウンロードしました。良ければお試しください。