VMD(Visual Molecular Dynamics)でtclスクリプトを動かし、単純な繰り返し作業を自動化したい
- やりたいこと
- VMDでNAMDにより得られたトラジェクトリファイルの読み込み
- センタリング
- 別名保存
- VMD終了
- 次のファイルへ
という流れを自動化したい。
環境
- CentOS Linux release 7.5.1804 (Core)
- VMD for LINUXAMD64, version 1.9.2 (December 29, 2014)
VMDでtclスクリプトを読み込む方法
$ vmd -dispdev none -e scriptname.tcl
-
-dispdev none
: display devise noneの略 ディスプレイウィンドウを表示しない -
-e scripname.tcl
: 読み込む(tcl)スクリプトの指定
これをシェルスクリプト中に書き込むことで、シェルスクリプトからtclスクリプトを呼び出していることになる。
tclスクリプトの書き方
シェルスクリプトが書けるなら大体大丈夫。
初めに
# !/usr/bin/bash
を書いておく。
実行するコマンドなど
proc productname {}{
ここにコマンドを書く
}
文字をコンソール上に表示
puts $aaa
シェルスクリプトのecho
に等しい。
($はシェルスクリプトと同じ変数置換詞)
変数に値(文字)の代入
set aaa 100
set bbb "moji"
値を計算して代入
expr 1+2
expr 100*$a
代入するときは、[]
でくくってset c [expr $a*5]
のようにする。
ここまでを応用して、
先のputs
と組み合わせると、
test.tcl
set a 10
set b "moji"
set c [expr $a*5]
puts $a
puts $B
puts $c
result
10
moji
50
参考
tclスクリプトについて、より詳しい解説は以下などを参考にしてほしい。