Shell脚本中的多行IDL命令

时间:2019-01-28 19:34:43

标签: bash shell command-line command-line-interface idl-programming-language

我想知道如何从shell脚本中调用多行IDL命令。例如,要调用单行命令idl_dummy.pro,我可以执行以下操作:

  

idl -e“ idl_dummy”

我有一组代码需要多行代码才能在IDL中执行。在IDL中,我需要运行:

  

.comp /a_different_directory/idl_file.pro

     

ans = idl_dummy(123456)

如何从Shell脚本运行此代码?

2 个答案:

答案 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进行编译(如我在答案中所建议的那样)。