差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

Both sides previous revision Previous revision
Next revision
Previous revision
shell_script [2009/08/22 13:04]
10.249.202.230
shell_script [2011/08/24 22:41] (現在)
isakari
ライン 1: ライン 1:
-シェルはたまにしか使わないので、すぐ忘れてしまう。ので、ここにメモすることにする。スクリプトと言うよりも、Unixコマンドの使い方のようなものも、ついでにここにメモすることにする。+シェルはたまにしか使わないので、すぐ忘れてしまう。ので、ここにメモすることにする。[Unix|Linux]コマンドの使い方は[[linux_command]]へ.
  
 ====== スクリプトを保存する時,自動的に chmod +x を行う ====== ====== スクリプトを保存する時,自動的に chmod +x を行う ======
ライン 22: ライン 22:
  
 ====== シェルからgnuplotで図を作成(Xで表示) ===== ====== シェルからgnuplotで図を作成(Xで表示) =====
 +=====決定版?=====
 +次のようにやると、./​do.shとやると数値解と解析解を比べてくれる。
 +<code bash>
 +#​do.shの中身
 +#!/bin/sh
 +make && ./a.out
 +gnuplot -persist <<EOF
 +plot '​suuchikai.dat','​kaisekikai.dat'​
 +EOF
 +</​code>​
 +
 +=====↑に到達するまでのやりとり=====
 以下のdo.shとplot.gpを用意すると、./​do.shとやるだけで、数値解と解析解を比べてくれる。 以下のdo.shとplot.gpを用意すると、./​do.shとやるだけで、数値解と解析解を比べてくれる。
  
ライン 48: ライン 60:
 gnuplotのパスに依存しないやり方はこんな感じかしら. gnuplotのパスに依存しないやり方はこんな感じかしら.
 <code bash> <code bash>
-#/usr/bin/sh+#!/bin/sh
 make && ./a.out make && ./a.out
-gnuplot plot.gp+gnuplot ​-persist ​plot.gp
 </​code>​ </​code>​
- 
  
 ====== readする値をshellで食わす ===== ====== readする値をshellで食わす =====
ライン 94: ライン 105:
 </​code>​ </​code>​
 e(x)はexp(1)のこと. e(x)はexp(1)のこと.
 +
 +====== ファイルから何かを読み取って変数に代入 ======
 +hoge.datが一行からなる情報を持っているとき。
 +<code bash>
 +a=`cat hoge.dat`
 +</​code>​
 +
 +複数行からなるpiyo.datから一行ごとに読み取りたければreadを使う。
 +<​code>​
 +cat piyo.dat | while read i
 +do
 +a=`echo $i`
 +(aを使ってなにか作業)
 +done
 +</​code>​
  
 ====== data file から必要な列だけを取り出す ====== ====== data file から必要な列だけを取り出す ======
ライン 132: ライン 158:
   a=`expr $a + 1`   a=`expr $a + 1`
 done done
 +</​code>​
 +
 +====== 変数を適当に変えてケーススタディー ======
 +周波数omegaを適当に振って計算した例。
 +<code bash>
 +make
 +for omega in 3.125 3.135 3.145 3.155 6.265 6.275 6.285 6.295
 +  do
 +  rm -fr output_linc_beta0_w${omega}  ​
 +  echo ${omega} | ./a.out
 +  cp -r output output_linc_beta0_w${omega}
 +done
 +</​code>​
 +
 +====== 変数を端末から読み込みたい ======
 +readを使う。
 +<code bash>
 +echo "​what'​s your name"
 +read name
 +echo your name is $name.
 +</​code>​
 +
 +====== 3分待ってからプログラムを実行 ======
 +sleepを使う。
 +<code bash>
 +sleep 180 && ./a.out
 </​code>​ </​code>​
shell_script.1250913882.txt.gz · 最終更新: 2009/08/22 13:04 by 10.249.202.230
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0