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