Ответ Кимбала Робинсона работает, но имеет недостаток в использовании файла. Он медленный (по сравнению с использованием только памяти), и вы должны впоследствии удалить файл (хотя, поместив его в / tmp, он, как правило, будет автоматически удален).
Альтернативой является передача данных через буфер обмена:
Dim myCommand As String
myCommand = "echo hello world"
Shell ("bash", 1, "-c "" " & myCommand & " | xclip -selection clipboard"" ", true)
' setting the 4th parameter to true ensures that the Shell function will wait until '
' the command terminates before returning '
' then paste the content of the clipboard '
Dim dh As Object
dh = createUnoService("com.sun.star.frame.DispatchHelper")
dh.executeDispatch(StarDesktop.CurrentFrame, ".uno:Paste", "", 0, Array())
Это вставит вывод команды в текущую точку активного документа.
Обратите внимание, что если команда выдает несколько строк, появится диалоговое окно «Импорт текста» (я не знаю, как это предотвратить).