我想知道如何从shell脚本中调用多行IDL命令。例如,要调用单行命令idl_dummy.pro,我可以执行以下操作:
idl -e“ idl_dummy”
我有一组代码需要多行代码才能在IDL中执行。在IDL中,我需要运行:
.comp /a_different_directory/idl_file.pro
ans = idl_dummy(123456)
如何从Shell脚本运行此代码?
答案 0 :(得分:0)
将两个命令放在扩展名为.pro
的文件中,例如test_batch.pro
。这是一个批处理文件;它不能使用begin
/ end
块,但是不需要任何特殊的语法。
然后像这样呼叫IDL:
$ idl path/to/test_batch.pro
答案 1 :(得分:0)
我通常会做这样的事情
Angular 7.0
或
#!/bin/bash
read -r -d '' IDL_SCRIPT <<EOF
.comp /a_different_directory/idl_dummy.pro
ans = idl_dummy(123456)
; print, ans ;?
EOF
# Print the script out for debugging
echo "${IDL_SCRIPT}"
idl <<< "${IDL_SCRIPT}"
您可能需要使用idl <<< \
"!path = EXPAND_PATH('/a_different_directory/:' + !path) & \
idl_dummy, 123456"
来自动编译所需的代码。我还建议命名该过程,以便您不必手动!path
进行编译(如我在答案中所建议的那样)。