我想得到GAP软件功能的结果。这是一个交互式命令行工具,主要面向从事群论相关主题的数学家。文档/常见问题解答中指出了 8.1:我可以从另一个程序调用 GAP 函数吗?这通常是不可能的。但是,将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
$
更新:这个问题的接受答案不起作用。
通过间隙支持回答(使用间隙的 stdin 读入功能)
#!/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