19
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

シェルスクリプトを実行できるようになるまで(基本知識)

Last updated at Posted at 2017-01-26

#はじめに
この記事では主に「これからシェルスクリプトをやりたい!」や「bashのことを勉強しはじめたい」向けの記事です。使用環境は、

バージョン
* macOS Sierra 10.12.2
* bash 3.2.57

です。
シェルの記事をこれから書いていきたのですが、実行したい!けどやり方は?ってなって別の人の記事を探すより、この記事があることを念頭においたらスムーズにこれから進むかと。

#シェル・シェルスクリプトとは
シェルとは、日本語で「殻」という意味で、OSの中核をなすカーネルを包み込みように存在し、ユーザーのコマンド入力を受けて、シェルに渡して、実行結果を表示します。

シェルにあらかじめ渡すコマンドをテキストファイルにしたものをシェルスクリプトといいます。
C言語と比較されがちですが、C言語はコンパイラ言語(コンパイルが必要)で、シェルスクリプトは**インタラクティブ言語(対話型)**であり、シェルスクリプトはOS依存性がない点が大きな違いだ。どっちで実装しやすいかは判断しないといけません。
bashは最も使われているシェルの種類の一つで、ash,shなどたくさん種類はあり、歴史を辿るとかなり長いです。(bashで十分です)
そもそもカーネルとは

アプリケーションソフトウェアとコンピュータのハードウェアを結び付ける、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。
                  wikipediaより引用

自分が使用しているシェルは以下のコマンドで確認でき、

terminal
$ echo $SHELL #シェル変数SHELLの値を表示

または

terminal
$ echo $SHELL #シェル変数SHELLの値を表示

で確認できまず。ちなみにシェルスクリプトではコメントを#使って書きます。bashのバージョンは

terminal
$ echo $BASH_VERSION 

で確認でき、以下でログインシェルを変更できる。

terminal
$ chsh -s /bin/bash

※あまり変更する必要はないと思います。

実行の仕方

まず、テキストファイルを作成しないといけないが、vimなどのエディタで作る。
今回はHello!をterminal(シェルのUI)で表示するのが目的なので、

terminal
$ vim hello.sh

で開き

hello.sh
#!/bin/sh #今回はshをつかうため、絶対パスを通す。

echo 'Hello!'

として、以下のコマンドで実行したが、実行権限はないため、実行権限を与える。

terminal
$ chmod 744 hello.sh

で実行権限をもらったのち、実行する。これを知らない人はこちらの記事を読んで理解することをオススメする。
これを忘れて「実行できない!」とドツボにはまってしまい、変な人に権限を知らぬ間に与えてセキュリティー的にも問題なので、初心者が多いので注意!

terminal
./hello.sh

これでHello!と表示されれば成功である。
./とカレントディレクトに実行パスが通ってないためである。

#まとめ
シェルスクリプトを実行までの手順は

  • テキストファイルを作成(拡張子はshとするとわかりやすい)
  • 実行権限をchmodで自分に付与
  • 実行

である。この記事により、実行までの手順がわかったと思う。

19
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?