如何从shell脚本调用间隙函数?

如何从shell脚本调用间隙函数?,shell,ipc,child-process,non-interactive,gap-system,Shell,Ipc,Child Process,Non Interactive,Gap System,我想得到软件功能的结果。这是一个交互式命令行工具,主要用于研究群论相关主题的数学家。 文档/常见问题解答指出,这通常是不可能的。但是,将GAP作为子进程运行并使用管道、伪TTY、UNIX FIFO或类似设备与之通信是可以做到的 使用名为CrystCat(晶体组目录)的包的示例会话如下所示: $ gap gap > LoadPackage( "CrystCat" ); gap > DisplaySpaceGroupType( "P1" ); #I

我想得到软件功能的结果。这是一个交互式命令行工具,主要用于研究群论相关主题的数学家。 文档/常见问题解答指出,这通常是不可能的。但是,将GAP作为子进程运行并使用管道、伪TTY、UNIX FIFO或类似设备与之通信是可以做到的

使用名为CrystCat(晶体组目录)的包的示例会话如下所示:

$ gap
gap > LoadPackage( "CrystCat" );
gap > DisplaySpaceGroupType( "P1" );
#I     Space-group type (3,1,1,1,1); IT(1) = P1; orbit size 1; fp-free
gap > quit;
$ # exited 'gap' and back in my shell
由于我不熟悉这些技术,有人能给我举一个具有以下功能的简单示例吗:

$ ./script.sh "P1"
#I     Space-group type (3,1,1,1,1); IT(1) = P1; orbit size 1; fp-free
$
更新:此问题的公认答案无效。

通过gap支持回答(使用gap的stdin读入功能)

考虑使用Python,其中Python有一个GAP接口。
#!/bin/sh

if [ "$#" != "1" ]; then
   echo "Usage: test.sh <string>"
   exit 1
fi;

gap -r -b -q << EOI
LoadPackage( "CrystCat" );
DisplaySpaceGroupType( "$1" );
EOI
$ ./script.sh P1
#I     Space-group type (3,1,1,1,1); IT(1) = P1; orbit size 1; fp-free