Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash shell脚本中的多行IDL命令_Bash_Shell_Command Line_Command Line Interface_Idl Programming Language - Fatal编程技术网

Bash shell脚本中的多行IDL命令

Bash shell脚本中的多行IDL命令,bash,shell,command-line,command-line-interface,idl-programming-language,Bash,Shell,Command Line,Command Line Interface,Idl Programming Language,我想知道如何从shell脚本调用多行IDL命令。例如,要调用单行命令idl_dummy.pro,我可以执行以下操作: idl-e“idl_假人” 我有一组代码,在IDL中执行这些代码需要不止一行。在IDL中,我需要运行: .comp/a_不同目录/idl_file.pro ans=idl_虚拟(123456) 如何从shell脚本运行此代码?将两个命令放在扩展名为.pro的文件中,例如test\u batch.pro。这是一个批处理文件;它不能使用begin/end块,但不需要任何特殊语法 然后

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

idl-e“idl_假人”

我有一组代码,在IDL中执行这些代码需要不止一行。在IDL中,我需要运行:

.comp/a_不同目录/idl_file.pro

ans=idl_虚拟(123456)


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

将两个命令放在扩展名为
.pro
的文件中,例如
test\u batch.pro
。这是一个批处理文件;它不能使用
begin
/
end
块,但不需要任何特殊语法

然后调用IDL,如:

$ idl path/to/test_batch.pro

我通常做这样的事情

#!/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}"
#/bin/bash

read-r-d“”IDL_脚本感谢您的回复!如果可能的话,我希望避免这样的包装脚本,但如果这是最好的方法,我想我别无选择!您可能想要
@CharlesDuffy是的,有时这是需要的(例如,脚本位于GNU并行调用的函数中),但感谢您指出这一点。谢谢@sappjw!这正是我想要的。
idl <<< \
  "!path = EXPAND_PATH('/a_different_directory/:' + !path) & \
  idl_dummy, 123456"