学びをみつけるweb開発2020/01/22【入門者向け】シェルスクリプトの作成・実行方法をわかりやすく解説!この記事では、シェルおよびシェルスクリプトの意味や、シェルスクリプトでできることや利用シーン、bashでのシェルスクリプト作成と実行について解説します。シェルスクリプトは、シェルによって解釈・実行される一連の処理を記述したスクリプトです。Unix環境やLinux環境で使用され、自動化・ショートカット・繰り返しなどの処理に使いやすく、作業を効率化できます。ソフトウェアの追加インストールが不要で手軽に利用できるため、システム管理者を中心に高頻度で利用されています。この記事では、シェルおよびシェルスクリプトの意味や、シェルスクリプトでできることや利用シーン、bashでのシェルスクリプト作成と実行について解説します。「シェル」とは、ユーザーからの操作を受け付け、操作通りに動作した結果を出力するプログラムです。一度でもLinux環境やUnix環境に触れた経験がある人なら、lsコマンドやcdコマンドを画面で実行し、コンピュータから出力される結果を見たことがあるかもしれません。その処理を実行するプログラムが「シェル」です。シェルは、ユーザーによって画面に入力されたコマンドを解釈し、「カーネル」に引き渡します。「カーネル」とは、CPUやメモリ、ハードディスクなどのハードウェアとソフトウェアを仲介するプログラムのことです。OSの中核部分を担っています。このカーネルが出力した処理結果をシェルに渡し、ユーザーがわかるように解釈して画面に表示するのです。Againシェル(bash)」です。bashは、Bourneシェルをベースに後発シェルの優れた点を取り入れて高機能化を図ったシェルです。次のような機能が使用できます。コマンドライン編集ジョブ制御コマンド履歴参照ディレクトリスタック$RANDOM変数コマンド置換機コマンド名/ファイル名自動補完シェルスクリプトは、このシェルで用いられるスクリプト言語のことです。シェルスクリプトとは?何ができる?シェルスクリプトとは、シェルによって解釈・実行される一連の処理を記述したスクリプト。狭義では、Unixシェルで用いられるスクリプト言語を指します。「スクリプト(script)」は「台本」という意味で、コンピュータに実行させたい処理を記述してコンピュータを動かせます。この台本をテキストデータで用意したものがシェルスクリプトです。コマンド・インタプリタとも呼ばれています。「インタプリタ」は「通訳者」という意味です。コンピュータにおいては、命令を1つずつ解釈して実行するプログラムのことを指します。シェルスクリプトは、CやJavaなどと比較して機能が貧弱なため、本格的なプログラミングには向いていません。繰り返し(for/while/until)や条件分岐(if/case)などの制御文、変数や配列、関数などの仕組みは一通り備えていて、様々なことに応用が効きます。シェルスクリプトの使いどころは?シェルスクリプトは、単純なコマンドと標準入出力、繰り返し(for/while/until)や条件分岐(if/case)を組み合わせて処理できる業務での利用に向いています。具体的には、次のような業務です。複数コマンドをまとめて処理まずは、これらの使いどころを一つずつみていきましょう。定期的に実行する決まった作業があれば、シェルスクリプトで代用できます。あるディレクトリの中身を毎朝8時に全て消去する、決まったプログラムを毎日夜9時に再起動する、などの作業です。シェルスクリプトの中には、シェルで使用できるコマンドを記述できます。シェル内にて実行できるコマンドの組み合わせであれば、ほぼシェルスクリプトで代用可能です。入力コマンドと画面への出力結果を記録できる「script」というLinuxコマンドが使用できます。シェルスクリプト内で、このscriptコマンドを記述することにより、特定のフォルダへ作業ごとの作業ログファイルを出力することもできます。日報や作業時間の記録などに役立つほか、何かトラブルが発生した際には、過去の作業ログを参照することができます。複数のコマンドをまとめて処理する場合シェルスクリプトの具体的な記載方法は後述しますが、シェルスクリプトは、特に何も考えずにコマンドを並べて記述するだけでも動作する点が魅力です。単純であるもののミスが発生しやすい作業において、事前に作業用のコマンドを列挙したシェルスクリプトを作成しておけば、作業時にもそのプログラムを実行するだけで作業が完了します。これにより、作業時間短縮や作業ミスのリスクを減らすことに役立ちます。シェルスクリプトを作成&実行してみようそれでは、実際にシェルスクリプトを作成していきましょう。World」と画面に出力するシェルスクリプトを作成します。ファイル名は「hw.sh」とし、下記コマンドをホームディレクトリで実行してみましょう。hw.shすると、viエディタが立ち上がってきますので、「i」キーを押下し、以下の文章を1行目に入力しましょう。World”入力が完了したら、「esc」キーを押下し、「:wq」と画面に入力して「Enter」キーを押下します。これで保存ができたはずです。-la」コマンドを実行すると、「hw.sh」の実行権限は次の通りになっています。-rw-r--r--1-rw-r--r--この場合、誰にも実行権限がない状態なので、実行権限を所有者に付加しましょう。実行権限を所有者に付加するには、以下コマンドを実行しましょう。-la」コマンドを実行すると、「hw.sh」の所有者に実行権限(x)がついているのを確認できます。rwxr--r--1rwxr--r--続いて、いよいよシェルを実行します。今回は、次の3パターンで実行してみます。World」と画面に出力されます。hw.sh通常、プログラムを実行する際には、絶対パスを指定して実行する必要があります。ここで、絶対パスではなく「PATHを通す」ことにより、そのPATH直下に存在するプログラムを、プログラム名だけで実行できるようになるのです。OSを再起動すると、上記コマンドで設定したPATHの内容は消えてしまいます。永続的にPATHを設定したい場合は、対象ユーザーのホームディレクトリ直下にある「.bash_profile」と呼ばれるファイルに追記することが一般的です。.bash_profileは、デフォルトで次のようなファイル内容になっています。USERNAMEこの中で「PATH=$PATH:$HOME/bin」の後ろに新しいPATHを追記し、「PATH=$PATH:$HOME/bin:/home/[ユーザー名]/」としましょう。追記したら「esc」キーを押下し、「:wq」と入力して保存することも忘れずに。PATHの設定内容を反映したい場合は、下記コマンドをホームディレクトリ直下で実行します。~/.bash_profileシェルスクリプトでは変数を使用できるシェルスクリプトでは、「変数」を使用できます。「変数」は、文字列や数値などのデータを記憶しておけるものです。演算や値の入出力などを組み合わせることで、様々な処理に使用できます。[変数名]」と記載すれば出力可能です。「特殊変数」と呼ばれる変数も存在し、最初から値が設定されています。主な特殊変数は、以下の通りです。N個目の引数の値シェルスクリプトは、CやJavaなどのプログラム言語と比較すると、できることが限られています。繰り返しや条件分岐など、基本的な機能は一通り備えているため、複数のコマンドを組み合わせた処理でも、十分実施できます。ソフトウェアの追加インストールなどは必要ないため、手軽に扱える点も魅力です。シェルスクリプトを活用し、作業を効率化していきましょう。初心者向けの人工知能と機械学習のコース。利用規約お問い合わせ。