P HI T S スクリプト言語を用いた PHITS の連続 実行 Multi-Purpose Particle and Heavy Ion Transport code System title1 2015 年 2 月改訂.

Slides:



Advertisements
Similar presentations
第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
Advertisements

システムプログラミング 情報工学科 篠埜 功 情報工学科 3 年生対象 専門科目 第5回 シェルスクリプトの続 き レポート課題 main 関数の引数 usage メッセージ.
Faculty of Computer and Information Sciences, Hosei University Resource Administration Team CIS RAT 1 Linux リテラシ 2006 第 3 回 エディタ、シェル.
P HI T S PSFC4PHITS の使い方 Multi-Purpose Particle and Heavy Ion Transport code System Title 年 2 月改訂.
BBT大学 Ruby on Rails開発環境セットアップマニュアル
実習1:コマンドシェルの使い方.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
UNIX利用法.
UNIX利用法 情報ネットワーク特論資料.
Macユーザーの方:データ転送 ターミナル使用.
JavaScript プログラミング入門 2006/11/10 神津.
Fortran と有限差分法の 入門の入門の…
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
2014年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
2015年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
Multi-Purpose Particle and Heavy Ion Transport code System
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
IO - 入出力 小西 亨.
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
2013年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
JavaによるCAI学習ソフトウェアの開発
数値計算及び実習 第3回 プログラミングの基礎(1).
リダイレクト パイプ 標準入出力プログラム コマンド行引数 関数 system()
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
C言語 配列 2016年 吉田研究室.
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
第6章 2重ループ&配列 2重ループと配列をやります.
4-3.基本的なPHPスクリプト 2004年6月24日(木) 大北高広 01T6010F.
アルゴリズムとデータ構造 補足資料6-3 「サンプルプログラムcat3.c」
実習1:コマンドシェルの使い方.
2017/4/9 情報処理 第5回.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
初年次セミナー 第2回 文字の出力.
スクリプト言語を用いたPHITSの連続実行
EGS5のWindows PC へのインストール
第2回 Microsoft Visual Studio C++ を使ってみよう
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
Multi-Purpose Particle and Heavy Ion Transport code System
KEK 波戸 、平山 最終変更 テキスト:installation_guide.pdf
リダイレクト パイプ 標準入出力プログラム コマンド行引数 関数 system()
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
EGS5のWindows PC へのインストール
コンピュータに計算させる命令を確かめよう!
IAEA phase space fileを用いた X線治療シミュレーション
2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2
Multi-Purpose Particle and Heavy Ion Transport code System
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
Multi-Purpose Particle and Heavy Ion Transport code System
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
コーパス言語学 ~バッチ処理~ 2013.10. 28.
プログラムの基本構造と 構造化チャート(PAD)
Multi-Purpose Particle and Heavy Ion Transport code System
基礎プログラミング演習 第12回.
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
C言語 はじめに 2016年 吉田研究室.
統計ソフトウエアRの基礎.
基礎プログラミング演習 第3回.
Webページに動きを持たせるJavascript言語について 例題のプログラムを通して体験的に理解することとします。
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
プログラミング 4 文字列.
例題のプログラムを通して JavaScriptの仕組みを理解することとします。
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
第3回Bashゼミ for文処理について 発表者 直江 宗紀.
Presentation transcript:

P HI T S スクリプト言語を用いた PHITS の連続 実行 Multi-Purpose Particle and Heavy Ion Transport code System title 年 2 月改訂

本実習の目標 Purpose2 スクリプト言語の基本的な使用方法を習得し、 複数回の PHITS の実行を自動的にできるように off SET PHITSEXE=“C:\phits\bin\phits274_win.exe“ for /l %i in (1, 1, 3) do ( %PHITSEXE% < lec0%i.inp copy phits.out phits%i.out ) pause exit Lec01.inp, lec02.inp, lec03.inp を 連続で実行するスクリプト

3Script ソフトウェアの動作内容を記述し制御するた めの、簡易的なプログラミング言語 スクリプト言語とは コマンドプロンプト( Windows の場合)で 実行できるコマンドを書き並べたファイル を作ることで、様々なソフトウェアの動作 を自動的に実行することができる テキストエディタで編集でき、拡張子が bat であれば使用可能( Windows の場合) ファイルのコピーや移動、ファイルの内容 の読み込みや書き出しが可能 あるソフトウェアを実行するコマンドを複 数書くことでその回数分の実行が可能

1.Windows 版 2.Mac 版 Table of contents4 実習内容

5Script “Hello PHITS world” と出力されるスクリプト ファイルを作成してみましょう 課題 1 テキストエディタで test.bat を開く Echo コマンドを使う Echo *** と書くことで *** の部分が書き出される test.bat をダブルクリックして実行 off pause exit ここにコマンドを書く おまじない 1 不必要な情報が 出力されなくなる おまじない 2 スクリプト終 了時に一旦停 止

6Script “Hello PHITS world” と出力されるスクリプト ファイルを作成してみましょう 課題 1 の答え合わせ off echo Hello PHITS world pause exit 実行すると、

7Script “Hello PHITS world” を新規ファイル file.txt に書 き出すスクリプトファイルを作成してみま しょう 課題 2 テキストエディタで test-2.bat を開く Echo コマンドを使う Echo *** > file.txt と > (リダイレクト)を使って書くことで *** の部分 が file.txt に書き出される Test-2.bat をダブルクリックして実行 off echo Hello PHITS world pause exit > (リダイレクト)を使う

8Script “Hello PHITS world” を新規ファイル file.txt に書 き出すスクリプトファイルを作成してみま しょう 課題 2 の答え合わせ off echo Hello PHITS world > file.txt pause exit 実行すると、 file.txt というファイルが作られる file.txt Hello PHITS world

9Script 変数に “Hello PHITS world” を代入して file.txt に 書き出してみましょう 課題 3 Set コマンドを使う Set aaa= *** と書くことで *** (文字列)の部分が変数 aaa に代入さ れる 書き出しは echo コマンドを使う 変数を使う場合は %aaa% のように % 記号で囲む off Set Hello PHITS world echo > file.txt pause exit 変数 aaa に代入しましょう 変数 aaa を書き出しましょう

10Script 課題 3 の答え合わせ Test-3.bat 実行すると、 file.txt の内容は file.txt Hello PHITS world 変数に “Hello PHITS world” を代入して file.txt に off set aaa=Hello PHITS world echo %aaa% > file.txt pause exit = の前後に空白を入れな いように注意しましょう

11Script 数字を代入した変数を使って定義した file2.txt に “Hello PHITS world” を書き出してみましょ う 課題 4 Set コマンドを使う Set /a iii= *** と書くことで *** (数字)の部分が変数 iii に数値として代入 される Set /a iii=iii+1 と書くことで演算が可能 文字列の一部として変数を使うことができる file%iii%.txt のように % 記号で囲んだものを差し込む off set aaa=Hello PHITS world set /a iii=1 set /a echo %aaa% > file.txt pause exit 1 が入っている変数 iii を 2 にするには? File2.txt となるように 書きかえましょう

12Script 課題 4 の答え合わせ Test-4.bat 実行すると、 file2.txt が新しく作成され file2.txt Hello PHITS off set aaa=Hello PHITS world set /a iii=1 set /a iii=iii+1 echo %aaa% > file%iii%.txt pause exit 数字を代入した変数を使って定義した file2.txt に “Hello PHITS world” を書き出してみましょ う

13Script File.txt の内容を読み込んで file2.txt に追記しましょ う 課題 5 for コマンドを使う for /f "tokens=1-3" %a in (file.txt) do ( コマンド ) と書くことで file.txt から読み込んだ情報を使って括弧 () で囲まれたコマンドを実行する 読み込みは 1 行ずつ行い、読み込んだ情報は変 数 %a, %b, %c に代入される “tokens=1-3“ をオプションとして書くことにより、空 白を区切りとして左から 3 つの情報が変数として代入 される Echo コマンドを使う Echo %a >> file2.txt と書くことで変数 %a の内容が file2.txt に追記される (読み込んだ変数は % で挟む必要はない)

@echo off set /a iii=2 for /f "tokens=1-3" %a in (file.txt) do ( ) pause exit 14Script File.txt の内容を読み込んで file2.txt に追記しましょ う 課題 5 Test-5.bat 読み込んだ “Hello PHITS world” が file2.txt に追記されるように しましょう

15Script File.txt の内容を読み込んで file2.txt に追記しましょ う 課題 5 の答え合わせ off set /a iii=2 for /f "tokens=1-3" %a in (file.txt) do ( echo %a %b %c >> file%iii%.txt ) pause exit 変数 %a に ”Hello” %b に ” PHITS” %c に ”world” が代入されているので、 これらを並べて文章を作成する 実行すると、 file2.txt の内容は file2.txt Hello PHITS world

16Script File.txt をコピーして file1.txt, file2.txt, file3.txt を作成しましょう 課題 6 copy コマンドを使う Copy file.txt file1.txt と書くことで file.txt の内容が file1.txt にコピーさ れる for コマンドを使う for /l %i in (1, 1, 3) do ( コマンド ) と書くことで、変数 %i の数字を 1→2→3 と変 えながら括弧 () off for /l %i in (1, 1, 3) do ( ) pause exit Test-6.bat 変数 %i を使って、 File.txt を File%i.txt にコピーしましょう

17Script File.txt をコピーして file1.txt, file2.txt, file3.txt を作成しましょう 課題 6 の答え合わせ off for /l %i in (1, 1, 3) do ( copy file.txt file%i.txt ) pause exit 実行すると、 file1.txt, file2.txt, file3.txt が作成され File1(2,3).txt Hello PHITS world

18Script If 文を使って、 file2.txt にだけ file.txt の内容 をコピーするようなスクリプトを作成し ましょう 課題 7 if コマンドを使う If %i == *** ( コマンド ) と書くことで変数 %i の数字が *** の場合の み括弧 () off for /l %i in (1, 1, 3) do ( copy file.txt file%i.txt ) pause exit Test-7.bat If コマンドを使っ て、変数 %i が 2 の 場合のみコピーす るようにしましょ う

19Script If 文を使って、 file2.txt にだけ file.txt の内容 をコピーするようなスクリプトを作成し ましょう 課題 7 の答え合わせ off for /l %i in (1, 1, 3) do ( if %i == 2 ( copy file.txt file%i.txt ) pause exit 実行すると、 file2.txt のみ作成される

20Script PHITS を実行するスクリプトを作成し、自動で lec01.inp と lec02.inp, lec03.inp を計算してみま しょう 課題 8 PHITS の実行コマンドを定義する SET PHITSEXE=“C:\phits\bin\phits274_win.exe“ と書くことで PHITS の実行コマンドがセットされる PHITS の実行形式は < の後にインプットファイルを 書く %PHITSEXE% < lec01.inp と書くことで lec01.inp を入力ファイルとした計算が実行 され off SET PHITSEXE=“C:\phits\bin\phits274_win.exe“ for /l %i in (1, 1, 3) do ( ) pause exit Test-8.bat 変数 %i を使っ て、 3 つのイン プットファイル が動作するよう にしましょう Phits.out に番号 を付けてコピー しましょう

21Script PHITS を実行するスクリプトを作成し、自動で lec01.inp と lec02.inp, lec03.inp を計算してみま しょう 課題 8 off SET PHITSEXE=“C:\phits\bin\phits274_win.exe“ for /l %i in (1, 1, 3) do ( %PHITSEXE% < lec0%i.inp copy phits.out phits%i.out ) pause exit Test-8.bat 実行すると、 phits1.out, phits2.out, phits3.out が作成される

1.Windows 版 2.Mac 版 Table of contents22 実習内容

23Script “Hello PHITS world” と出力されるスクリプト ファイルを作成してみましょう 課題 1 テキストエディタで Test_mac-1.command を開く Echo コマンドを使う –Echo "***" – と書くことでダブルクォーテーションで囲まれた *** の部分が書き出される Test_mac-1.command をダブルクリックして実行 Test_mac-1.command #!/bin/sh cd `dirname $0` echo "- push ENTER key to end -" read WAIT exit ここにコマンドを書く おまじない 1 おまじない 2 スクリプト終 了時に一旦停 止

24Script “Hello PHITS world” と出力されるスクリプト ファイルを作成してみましょう 課題 1 の答え合わせ 実行して表示されれば成功! Test_mac-1.command #!/bin/sh cd `dirname $0` Echo " Hello PHITS world " echo "- push ENTER key to end -" read WAIT exit

#!/bin/sh cd `dirname $0` Echo " Hello PHITS world " echo "- push ENTER key to end -" read WAIT exit 25Script “Hello PHITS world” を新規ファイル file.txt に書 き出すスクリプトファイルを作成してみま しょう 課題 2 テキストエディタで Test_mac-2.command を 開く Echo コマンドを使う Echo *** > file.txt と > (リダイレクト)を使って書くことで *** の部分が file.txt に書き出される est_mac-2.command をダブルクリックして実 行 > (リダイレクト)を使う Test_mac-2.command

26Script “Hello PHITS world” を新規ファイル file.txt に書 き出すスクリプトファイルを作成してみま しょう 課題 2 の答え合わせ 実行すると、 file.txt というファイルが作られる file.txt Hello PHITS world #!/bin/sh cd `dirname $0` Echo " Hello PHITS world “ > file.txt echo "- push ENTER key to end -" read WAIT exit Test_mac-2.command

27Script 変数に “Hello PHITS world” を代入して file.txt に 書き出してみましょう 課題 3 代入式を使う aaa= " *** " と書くことで *** (文字列)の部分が変数 aaa に代入さ れる 書き出しは echo コマンドを使う 変数を使う場合は ${aaa} のように $ 記号を先頭につけ る ( $aaa のように {} を省略できる場合もある) Test_mac-3.command #!/bin/sh cd `dirname $0` "Hello PHITS world " echo > file.txt echo "- push ENTER key to end -" read WAIT exit 変数 aaa に代入しましょう 変数 aaa を書き出しましょう

28Script 課題 3 の答え合わせ Test_mac-3.command 実行すると、 file.txt の内容は file.txt Hello PHITS world 変数に “Hello PHITS world” を代入して file.txt に 書き出してみましょう #!/bin/sh cd `dirname $0` aaa="Hello PHITS world " echo $aaa > file.txt echo "- push ENTER key to end -" read WAIT exit = の前後に空白を入れな いように注意しましょう

29Script 数字を代入した変数を使って定義した file2.txt に “Hello PHITS world” を書き出してみましょ う 課題 4 数字の演算を行う iii=$(( $*** + 1 )) と書くことで *** (文字)の部分が数値として認識し て 演算した後、変数 iii に文字として代入される 文字列の一部として変数を使うことができる File${iii}.txt のように ${} 記号で囲んだものを差し込 む Test_mac-4.command #!/bin/sh cd `dirname $0` aaa="Hello PHITS world" echo $aaa > file.txt echo "- push ENTER key to end -" read WAIT exit 変数 iii に 1 を代入しましょう iii=iii+1 の演算をさせ iii=2 としましょう File2.txt となるように 書きかえましょう

30Script 課題 4 の答え合わせ Test_mac-4.command 実行すると、 file2.txt が新しく作成 され file1.txt Hello PHITS world #!/bin/sh cd `dirname $0` aaa="Hello PHITS world" iii=1 iii=$(( $iii+1 )) echo $aaa > file${iii}.txt echo "- push ENTER key to end -" read WAIT exit 数字を代入した変数を使って定義した file2.txt に “Hello PHITS world” を書き出してみましょ う

31Script File.txt の内容を読み込んで file2.txt に追記しましょ う 課題 5 do while コマンドを使う cat file.txt | while read a b c do コマンド done と書くことで file.txt から読み込んだ情報を使って括弧 do done で囲まれたコマンドを実行する 読み込みは 1 行ずつ行い、読み込んだ情報は変数 a, b, c に代入される 空白を区切りとして左から 3 つの情報を変数 a,b,c に代 入される Echo コマンドを使う Echo $a >> file2.txt と書くことで変数 a の内容が file2.txt に追記される ファイルを読み込むコマン ド それと同時に以下を実 行

#!/bin/sh cd `dirname $0` iii=2 cat file.txt | while read a b c do done echo "- push ENTER key to end -" read WAIT exit 32Script File.txt の内容を読み込んで file2.txt に追記しましょ う 課題 5 Test_mac-5.command 読み込んだ “Hello PHITS world” が file2.txt に追記されるように しましょう

33Script File.txt の内容を読み込んで file2.txt に追記しましょ う 課題 5 の答え合わせ Test_mac-5.command #!/bin/sh cd `dirname $0` iii=2 cat file.txt | while read a b c do echo $a $b $c >> file${iii}.txt done echo "- push ENTER key to end -" read WAIT exit 変数 a に ”Hello” b に ” PHITS” c に ”world” が代入されているので、 これらを並べて文章を作成する 実行すると、 file2.txt の内容は file2.txt Hello PHITS world

34Script File.txt をコピーして file1.txt, file2.txt, file3.txt を作成しましょう 課題 6 cp コマンドを使う cp file.txt file1.txt と書くことで file.txt の内容が file1.txt にコピーさ れる For コマンドを使う for i in (seq 1 3) do コマンド done と書くことで、変数 i の数字を 1→2→3 と変えな がら do done で囲まれたコマンドを実行する #!/bin/sh cd `dirname $0` for i in $(seq 1 3) do done echo "- push ENTER key to end -" read WAIT exit Test_mac-6.command 変数 i を使って、 file.txt を file${i}.txt にコピーしましょう

35Script 課題 6 の答え合わせ Test_mac-6.command #!/bin/sh cd `dirname $0` for i in $(seq 1 3) do cp file.txt file${i}.txt done echo "- push ENTER key to end -" read WAIT exit 実行すると、 file1.txt, file2.txt, file3.txt が作成さ れ File1(2,3).txt Hello PHITS world File.txt をコピーして file1.txt, file2.txt, file3.txt を作成しましょう

36Script If 文を使って、 file2.txt にだけ file.txt の内容 をコピーするようなスクリプトを作成し ましょう 課題 7 if コマンドを使う if [ i = *** ] then コマンド fi と書くことで変数 i の数字が *** の場合のみ then fi で囲まれたコマンドを実 行する #!/bin/sh cd `dirname $0` for i in $(seq 1 3) do cp file.txt file${i}.txt done echo "- push ENTER key to end -" read WAIT exit Test_mac-7.command If コマンドを使っ て、変数 i が 2 の場 合のみコピーする ようにしましょう [, =, ] のそれぞれの前後にスペースが必 要

37Script If 文を使って、 file2.txt にだけ file.txt の内容 をコピーするようなスクリプトを作成し ましょう 課題 7 の答え合わせ Test_mac-7.command #!/bin/sh cd `dirname $0` for i in $(seq 1 3) do if [ $i = 2 ] then cp file.txt file${i}.txt fi done echo "- push ENTER key to end -" read WAIT exit 実行すると、 file2.txt のみ作成される [, =, ] のそれぞれの前後にスペースが必 要

38Script PHITS を実行するスクリプトを作成し、自動で lec01.inp と lec02.inp, lec03.inp を計算してみま しょう 課題 8 PHITS の実行コマンドを定義する PHITSEXE= “ /Users/***/phits/bin/phits274_mac.exe " と書くことで PHITS の実行コマンドがセットされる PHITS の実行形式は < の後にインプットファイルを 書く $PHITSEXE < lec01.inp と書くことで lec01.inp を入力ファイルとした計算が実行 され る #!/bin/sh cd `dirname $0` PHITSEXE=“/Users/***/phits/bin/phits274_mac.exe" for i in $(seq 1 3) do done echo "- push ENTER key to end -" read WAIT exit Test_mac-8.command 変数 ${i} を使っ て、 3 つのイン プットファイル が動作するよう にしましょう Phits.out に番号 を付けてコピー しましょう 自身の環境に合わ せて PATH を変え る

39Script PHITS を実行するスクリプトを作成し、自動で lec01.inp と lec02.inp, lec03.inp を計算してみま しょう 課題 8 の答え合わせ #!/bin/sh cd `dirname $0` PHITSEXE=“/Users/***/phits/bin/phits274_mac.exe" for i in $(seq 1 3) do $PHITSEXE < lec0${i}.inp cp phits.out phits${i}.out done echo "- push ENTER key to end -" read WAIT exit Test_mac-8.command 実行すると、 phits1.out, phits2.out, phits3.out が作成される

まとめ Summary40 スクリプト言語の基本的なコマンドの使い方を学 んだ PHITS を自動で複数回実行するスクリプトを作成 した 工夫次第で PHITS の実行方法は非常に便利になりま す。 基本的なコマンドを組み合わせて、使い勝手の良い スクリプトを作成しましょう!