Запуск программы IDL из bash с переменными

Я написал программу на IDL для создания точечных диаграмм на основе аргументов командной строки. Я могу успешно вызвать программу прямо в терминале следующим образом:

idl -e "scatterplot_1_2d_file.pro" $infile $outfile $title $xtitle $ytitle $xmin $xmax $ymin $ymax $timescale

Где $* ссылаются на некоторые введенные строковые литералы. Проблема в том, что я думал, что смогу просто ввести эту самую строку, поставив имена переменных вместо литералов, в сценарий bash и сгенерировать миллион точечных диаграмм, пока я м в перерыве. К сожалению, если я сделаю это таким образом, я получаю сообщение об ошибке:

idl: опция -e не может быть указана с пакетными файлами

. Поэтому моей следующей попыткой было записать эти команды в пакетный файл IDL, который я бы тогда беги.

Эта попытка выглядит так:

#!/bin/bash

indir=/path/to/indir/
outdir=/path/to/outdir/

files=`ls $indir`
batchfile=/path/to/tempbatchfile.pro

echo .r "/path/to/scatterplot_1_2d_file.pro" >> $batchfile

for file in $files
  do
  name=${file%\.*}
  echo scatterplot_1_2d_file $indir$name.txt $outdir$name.jpg $name "Gauge Precipitation (mm)" "NMQ Precipitation (mm)" "*" "*" "*" "*" 2 >> $batchfile
done #done file                                                                                                                                                                                                

echo exit >> $batchfile

idl <<EOF                                                                                                                                                                                                      
@/path/to/scatterplot_1_2d_file                                                                                                                                                                  
EOF                                                                                                                                                                                                            

rm $batchfile

Я не знаю, имеет ли значение большая часть ошибок, которые генерирует скрипт, поэтому я просто опубликую начало, а остальные опубликую позже, если вам это нужно:

[foo]$ bash script_thing.sh
IDL Version 6.3 (linux x86 m32). (c) 2006, Research Systems, Inc.
Installation number: 91418.
Licensed for personal use by XXXXXXXXX only.
All other use is strictly prohibited.


PRO scatterplot_1_2d_file
                         ^
% Programs can't be compiled from single statement mode.
  At: /path/to/scatterplot_1_2d_file.pro, Line 1
% Attempt to subscript ARGS with <INT      (       1)> is out of range.
% Execution halted at: $MAIN$          
% Attempt to subscript ARGS with <INT      (       2)> is out of range.
% Execution halted at: $MAIN$          
% Attempt to subscript ARGS with <INT      (       3)> is out of range.
% Execution halted at: $MAIN$          
% Attempt to subscript ARGS with <INT      (       4)> is out of range.
% Execution halted at: $MAIN$          
% Attempt to subscript ARGS with <INT      (       5)> is out of range.
% Execution halted at: $MAIN$          
% Attempt to subscript ARGS with <INT      (       6)> is out of range.
% Execution halted at: $MAIN$          
% Attempt to subscript ARGS with <INT      (       7)> is out of range.
% Execution halted at: $MAIN$          
% Attempt to subscript ARGS with <INT      (       8)> is out of range.
% Execution halted at: $MAIN$          
% Attempt to subscript ARGS with <INT      (       9)> is out of range.
% Execution halted at: $MAIN$          

Я не знаю, может, я просто пытаюсь сделать что-то, что невозможно сделать, но это ПОКАЗЫВАЕТСЯ, что это не так. Любые советы?

7
задан Joe 9 January 2013 в 17:01
поделиться