我正在尝试编写调用的IDL脚本,例如a.pro。在这个脚本的最后,我想执行shell脚本b。我正在尝试使用spawn命令。但是我还需要从IDL脚本向这个shell脚本传递一些参数(变量值)。我怎样才能做到这一点?
答案 0 :(得分:3)
您发送给SPAWN
的命令只是一个字符串;以你喜欢的方式创建字符串。我更喜欢使用C风格的格式代码:
filename = 'output.log'
n_lines = 50
cmd = string(n_lines, filename, format='(%"tail -%d %s")')
; cmd = 'tail -50 output.log'
spawn, cmd, output
答案 1 :(得分:1)
有两种方法可以调用SPAWN
来完成您想要的任务:
直接调用脚本b
:
spawn, ['b', arg1, arg2], /noshell
优点:
bash
的新实例。格式为bash
终端字符串:
script_path = 'b'
cmd = strjoin([script_path, arg1, arg2], ' ')
spawn, cmd
优点:
bash
查看的格式。在大多数情况下,您应该直接使用spawn, /noshell
调用脚本和其他程序(除了IDL),因为速度提升很大,安全性可能相当高。