0

我想要得到'gap'软件功能的结果。这是一个交互式命令行工具,主要用于从事与群论相关的主题的数学家。 关于的文档/常见问题状态通常不可行。但是,将GAP作为子进程运行并使用管道,伪ttys,UNIX FIFO或某些类似设备与它进行通信即可完成。如何从shell脚本调用GAP函数?

使用一种叫做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 
$ 

更新:question的接受的答案不起作用。通过间隙支持

回答

1

答案(使用标准输入读入的差距能力)

#!/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