ITPASS Informational Training program with a spirit of self-help シェルスクリプト 流体地球物理学教育研究分野 B4 池田 諒 2016/08/08 目次 • シェルスクリプトの目的 • シェルスクリプトの例 • シェルスクリプトの概要 – 順次構造 – 判断構造 – 繰り返し構造 • まとめ • 参考文献 ITPASS Informational Training program with a spirit of self-help シェルスクリプトの目的 • 一連の作業をまとめて処理させる – 自分は楽をする • 既存のコマンドの組み合わせで新しいコマ ンドを作る – 例:ファイルのバックアップをとる • 毎日, 毎時間, … file.txt hogehoge …………. …………. file_2016-08-08.txt 複製 hogehoge …………. …………. ITPASS Informational Training program with a spirit of self-help シェルスクリプトの例 • 手動でやる場合 $ date ‘+%Y-%m-%d’ ←日付を表示 2016-08-08 $ cp file.txt file_2016-08-08.txt ↑ ファイルをコピー $ ls file.txt file_2016-08-08.txt ↑ 手動で作成されたファイル ITPASS Informational Training program with a spirit of self-help シェルスクリプトの例 • シェルスクリプトで行う場合 $ cat makebackup.sh ←シェルスクリプト ファイルの中身を見る #!/bin/bash NICHI=`date ‘+%Y-%m-%d’` ←日付を変数に代入 cp file.txt file_${NICHI}.txt ↑ ファイルをコピー $ ./makebackup.sh ←シェルスクリプト ファイルを実行 $ ls file.txt file_2016-08-08.txt makebackup.sh ↑シェルスクリプトによって 自動的に作成されたファイル ITPASS Informational Training program with a spirit of self-help シェルスクリプトの概要 • 複数のコマンドを順に書き記す • シェル変数を利用して汎用性を持たせる • 構造化プログラミング (制御構造を持たせ る) – 順次構造 – 判断構造 – 繰り返し構造 ITPASS Informational Training program with a spirit of self-help シェルスクリプトの概要:順次構造 処理 A 処理 B 処理 C ITPASS Informational Training program with a spirit of self-help シェルスクリプトの概要:順次構造 #!/bin/bash a=$USER ← hogehoge b=$PWD ← /home/hogehoge echo “Now,” $a “is in” $b Now, hogehoge is in /home/hogehoge ITPASS Informational Training program with a spirit of self-help シェルスクリプトの概要:判断構造 条件 NO/条件2 処理 A YES/条件1 処理 B 処理 A 処理 B 処理 C ITPASS Informational Training program with a spirit of self-help シェルスクリプトの概要:判断構造 … if [ $TENSUU –ge 80 ] then 処理 A SEISEKI=“優” elif [ $TENSUU –ge 70 ] 処理 B then SEISEKI=“良” elif [ $TENSUU –ge 処理 C 60 ] then SEISEKI=“可” else SEISEKI=“不可” fi … ITPASS Informational Training program with a spirit of self-help シェルスクリプトの概要:繰り返し構造 条件 YES/条件1 処理 A NO/条件2 処理 B ITPASS Informational Training program with a spirit of self-help シェルスクリプトの概要:繰り返し構造 … i=1 while [ $i –le 100 ] do echo $i > text${i}.txt i=$(( $i + 1 )) done … 100 1 2 … ITPASS Informational Training program with a spirit of self-help まとめ • シェルスクリプトは, 作業を自動化して楽を するための台本 – 既存のコマンドを組み合わせて作る – 条件分岐とループで構造化 – レポート課題を通じて練習 ITPASS Informational Training program with a spirit of self-help 参考文献 • ITPASS 実習 2015「シェルスクリプト」 • https://itpass.scitec.kobeu.ac.jp/exp/fy2015/140807/lecture_shellscript/pu b/ • 地球および惑星大気科学実習 ITPASS 2010「シェル, シェルスクリプト, エディタ vi」 • http://itpass.scitec.kobeu.ac.jp/~itpass/exp/fy2010/100507/lecture/pub/ • Newham, Rosenblatt 著, 株式会社クイー プ 訳, 「入門 bash 第2版」オライリー・ジャ パン (1998) ITPASS Informational Training program with a spirit of self-help 実習の進めかた • ◎は実習時間内に終わらせてください – 時間がなければ他はやらなくてもよい – ただし, レポートは◎以外の範囲も必要かも … ITPASS Informational Training program with a spirit of self-help
© Copyright 2024 ExpyDoc