0

写真の名前のプレフィックスをパラメーターとして受け取り、gnuplot を呼び出すシェル スクリプト (.run) を作成しました。しかし、なぜか画像が保存されません。コードは次のとおりです。

#!/bin/sh
molecule=$1

echo "Plotting DFT-ADF PY results for $molecule"
echo "Tranmission plot (negatory SO)"
gnuplot -p << EOF
#!/usr/bin/gnuplot
set terminal epslatex size 5,3 color colortext
set output '$molecule_trans.tex'

plot cos(x) w l title 'cos(x)', sin(x) w l title 'sin(x)'

EOF

私の学士論文では、同じプロットをいくつか作成する必要があります。さらに、計算クラスタはキューイング システムを使用します。このシステムに忠実であることを目的として、自動的に処理を行うシェル スクリプトをいくつか作成しました。特に、約 45 のシミュレーションがシェル スクリプトによって呼び出され、続いてシェル スクリプトが各シミュレーションのディレクトリに入り、python ファイルを使用してデータを [ .dat ] ファイルに評価します。次に、gnuplot ファイルを使用してグラフを作成します。私は EPSLaTeX を使ってフィギュアを作っています。ただし、現在の実装では、さまざまなラテックス ファイルを手動で編集して画像の名前を変更する必要がありました。

4

1 に答える 1

2

$1より多くの変数が必要で、 , $2... 混乱を避けたい場合:

変数名を括弧で囲む必要があります

set output '${molecule}_trans.tex'

アンダースコアは変数名の有効な文字であり、bash変数を検索するため、http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion$molecule_transを参照してください。

于 2013-09-13T11:13:58.737 に答える