0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【勉強会用】バッチファイルとシェルスクリプトについて

Posted at

概要

本投稿は、勉強会で使用するためかつ、OUTPUT用の記事である。
以下題材を用いる。
・バッチファイル
・シェルスクリプト

バッチファイル

バッチファイルとは

 Windowsの環境で実施することができるコマンドを羅列したテキストファイルのことを指す。
 拡張子は「*.bat」

操作と作成方法

①テキストファイルの拡張子を変更する。

 テキストエディタ、メモ帳などを使用して、コマンドを記述し、拡張子を「.bat」に変更して、保存する。

②実行中のコマンドを非表示とする。

 テキストの冒頭に「@echo off」と記述する。これは、それ以下に記述されるコマンドをすべて画面に表示させないコードである。この記述がなければ、処理を実行するたびにコマンドが画面に表示されることになる。

 ★設計メモ
  「@」は「行内のコマンドを非表示にする」記述、そのため「echo off」だけでは、「echo off」だけが残
  ってしまう。
  確認が必要な処理はあえて、コマンドを消さない場合もある。
  (例)デバッグ時など。
③環境変数を設定する。

 「setlocal」と記述し、それ以下に環境変数(OSが管理している変数)(※1)を記述する。

 ★設計メモ
 単に環境変数を設定するだけであれば、「set」でも可能
 「set」ではそこで定義した環境変数が、ほかのバッチファイルにも及ぶ恐れがある。

(※1)環境変数については、以下投稿を参照とする。
https://qiita.com/jeyei/items/2c385e4e0488a5fa2591

④コメントを記述する。 

 「rem」と記述した後ろに入力した文章はコメントとして扱われ、処理の実行には一切影響しない。
 関数のように、意図関数、ヘッダー行を残すとメンテナンスがしやすい。

⑤ファイル名を指定して実行する。

 作成したバッチファイルは、コマンドプロンプトからファイル名を指定するだけで実行可能。
※ただし、カレントディレクトリに存在するバッチファイルのみのため、パスの確認はしておくこと。

★設計メモ
通常、バッチファイルをUIで管理者として実行、またはダブルクリックに
⑥コマンドライン引数を指定または参照するよる実行を行うことが通説。

 コマンドライン引数を指定することで、バッチファイル実行時にプログラムに対して指定した値を渡すことが可能。

構文
■ファイル名.bat 引数1 引数2 引数3 ……

使用例

①ファイルの移動

あらかじめ移動するパスが決まっているものをバッチファイルをたたくことで移動させることが可能。
(例)ビルドで生成したbinファイルをしてパスに移動させる。

②プログラムの起動

プログラムファイルを指定し、バッチファイルを叩くことでプログラムを起動することができる。
(例)統合開発環境の起動、ビルド、バイナリファイルの移動をすべてバッチファイルで一括で行う。

③シェルスクリプトと連携

Linux環境と連携し、ファイルの移動やシェルスクリプトの実行が可能。

メリット/デメリット

 バッチファイルにおける、メリット/デメリットの一例を紹介する。

メリット デメリット
作業の自動化 作成コスト
人為的なミス削減 動作確認
作業時間外でも実行可能 メンテナンス性
CPUへの負荷

シェルスクリプト

シェルスクリプトとは

 UNIX環境で一連の手続きをファイルに書いておいて自動実行するもの。

 ★設計メモ
 ・UNIX・・・現存するOSの中で最も古いものの一つ。
 ・シェル・・・CLI(コマンドラインインターフェース)という、
            コンピュータを操作するためのインターフェースとなる黒い画面上で動くソフトウェアの一種
            ユーザーが入力したコマンドを受け取ってOSの中核「カーネル」へと送る、
            いわばユーザーとOSの橋渡しのような役割をするもので、
            コマンドと言われる命令文を使ってOSを操作する

操作と作成方法

①テキストファイルの拡張子を変更する。

 テキストエディタ、メモ帳などを使用して、コマンドを記述し、拡張子を「.sh」などに変更して、保存する。

②実行する処理系の指定

 shebangと呼ばれる、どのシェルによって実行されるかを宣言するための文字列を先頭行に記述する

(例:「#!/bin/bash」)
③実行権限付与

 作成したシェルスクリプトを実行する方法には、

  • 実行権限を付与せず各種コマンドなどで実行する

  • 実行権限を付与してコマンドとして直接実行する
    の2つがある。

    $ chmod +x test.sh または $ chmod 755 test.sh

④コメントを記述する。 

 シェルスクリプトのコメントは #

⑥引数とオプション

 引数は実行時にプログラム内で参照され、シェルスクリプトの実行結果 (動作) に影響を与える。引数はパラメータと呼ばれることもある。

command 引数
command 引数1 引数2 … 引数n

 オプションは -f などのように - (ハイフン) とアルファベット1文字で表記され、主にコマンドの振る舞い方を指定する目的で使用されるものである。

また、オプションは -a -l といった複数指定を -al と一つにまとめて指定することもできる。引数に - が含まれる場合には「コマンド名 -- -引数」といったように -- を指定することで、コマンドは -- 以降の -引数 の部分をオプションではなく引数として解釈する。

使用例

①ファイルの移動

※バッチファイルと同じ内容のため、省略

②プログラムの起動

※バッチファイルと同じ内容のため、省略。

③バッチファイルと連携

Windows環境と連携し、ファイルの移動やバッチファイルの実行が可能。

メリット/デメリット

 バッチファイルにおける、メリット/デメリットの一例を紹介する。

メリット デメリット
作業の自動化 処理速度が遅い
人為的なミス削減 動作確認
作業時間外でも実行可能 メンテナンス性

以上

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?