【初心者向け】シェルスクリプトの作り方と実行方法

シェルスクリプトの作り方と実行方法
  • このエントリーをはてなブックマークに追加
  • Pocket

このページではシェルスクリプトの書き方と実行方法について簡単にご紹介している。

はじめの1行目の意味や、実行権限などについても一通りお伝えしよう。

先にシェルスクリプトとは?について先に知りたいという方は下記に詳しい。

シェルスクリプトの作り方

1行目でシェルを選択する

シェルスクリプトを記述するときに、まず初めに覚えなければならないのは次の一行だ。

#!/usr/bin/bash

これはスクリプトの一行目に記述する。この一行目で、実行時どのシェルでスクリプトを実行するかが決まる。

シェルについては下記でご説明している。

シェルにはいくつも種類がある。

BourneシェルはUNIXの標準的なシェルでこれを改良したのがbashだ。bashが多くのディストリビューションにおいて標準シェルになっている。

他にもCシェルやKornシェルなどがあるが、上記の「#!/usr/bin/bash」ではbashを選んでいることになる。

2行目からコマンドの羅列

2行目以降はつらつらとコマンドの羅列、つまりスクリプトを記述していくことになる。試しに「hello-world」を表示させてみよう。

vi testscript.sh

「echo」は渡された文字を、そのまま標準出力へ出力するコマンドだ。

シェルスクリプトを実行してみる

さて書きおわったら次に実際に実行してみよう。その前に権限の設定が必要なのを覚えておく必要がある。

$ chmod 755 testscript.sh

として実行権限をあたえる。

「なぜテキストファイルに実行権限をもたせるのか?」と疑問に思うかもしれない。

「シェルはインタプリタである」ということを思い出してほしい。実行権限を付与しシェルに伝えれば、スクリプトとして実行される。

さて実際に実行してみよう。スクリプトのあるディレクトリに移動して

$ ./testscript.sh

としてみると、実際に実行され、処理されるはずだ。

script-hello-wold

シェルスクリプトのパス

最初の「./」の部分に注意していただきたい。

Linuxではパスの通っていないところでのファイル、コマンドの実行はきっちりとフルパスで指定しなければならない。

カレントディレクトリも例外ではないので、注意しよう。

またあまり遭遇しないが「bash ./testscript.sh」とすると一行目の「#!/usr/bin/bash」を省くことができるが、tipsだ。覚えなくてもいい。

拡張子について

最後にもう一つ。

拡張子「.sh」とあるが、厳密にはLinuxは拡張子を必要としないので「.sh」は必ず書かなくてはならないというわけではない。

しかしエディタなどは「.sh」でそれがsh系のスクリプトであると判断するのでとりあえず、最後には「.sh」をつけておこう。

まとめ

このページではシェルスクリプトの作り方と実行方法についてお伝えした。

ここまでが前提知識だ。ここからが少しプログラミングが入り、シェルスクリプトらしいシェルスクリプトになってくる。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リカレントテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. ken より:

    いつも分かりやすく助かっています。
    質問がありまして、

    centos6を使っているのですが、シェルスクリプト の一行目を#!/usr/bin/bashとしたところ、ファイルとディレクトリがありませんと出ました。
    そこで/bin/bashとしたところ上手く行きました。
    これは何故なのでしょうか?

    1. リカレントテクノロジー より:

      ご愛読いただきありがとうございます。

      インストールするディストリビューションによって、bashがどのフォルダに入るか異なっており、
      最初の一行目で#!/usr/bin/bashを打つと、/usr/bin/bashを探しに行ったが、ファイルとディレクトリが見当たらなかったので、
      「ファイルとディレクトリがありません」と表示されたものかと思われます。

      /bin/bashで成功したということは、今回インストールしたディストリビューションでは、
      /usr/bin/bashではなく、/bin/bashに保存されていたということですね。

      いつか統一してほしいと願うばかりです。
      宜しくお願い致します。

ken へ返信する コメントをキャンセル

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リカレントテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する