Самый простой способ - использовать возможности трубопровода оболочки. См .:
% cabal v2-repl <<< ':type zip'
...
λ zip :: [a] -> [b] -> [(a, b)]
λ Leaving GHCi.
Эта нотация <<<
в интерпретаторе сценариев sh
означает, что строка в кавычках отправляется на стандартный ввод команды, затем следует новая строка, а затем конец файла.
Есть и другие способы. Например, если вы хотите указать больше строк, вы можете использовать так называемый "here-doc" :
% cabal repl <<EOF
:type zip
:type fst
EOF
Запись <<<
является сокращением для одного-line "here-doc".
Как правило, программа может знать, является ли ее стандартный ввод терминалом (предполагается, что пользователь в реальном времени) или файл (который heredoc
притворяется) 1020 * и ведут себя по-другому. Но обычно это работает в любом случае, и, если вы можете отправлять вещи на стандартный ввод, вы можете автоматизировать их.