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

シェルスクリプトの作り方と実行方法
  • このエントリーをはてなブックマークに追加
  • 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

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

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメント

  1. ken より:

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

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

    1. リナックスアカデミー より:

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

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

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

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

コメントを残す

*

ゼロからエンジニアを目指す方へ
短期間でエンジニアになる方法

一流のIT企業も利用する短期集中エンジニアプログラム。未経験者からエンジニアに

プログラムを見てみる