3

GAPソフトウェアの機能の結果を取得したい。これは、主に群論関連のトピックに取り組む数学者向けの対話型コマンド ライン ツールです。documentation/faq は8.1 について述べています: Can I call GAP functions from another programme? 一般的にはありえないということです。ただし、GAP を子プロセスとして実行し、パイプ、疑似 tty、UNIX FIFO、または同様のデバイスを使用して GAP と通信することができます。

CrystCat (Crystallographic Groups Catalog) と呼ばれるパッケージを使用したセッションの例は次のようになります。

$ 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
$

更新:この質問の受け入れられた回答は機能しません。

4

1 に答える 1

4

gap-support による回答 (gap の 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
于 2013-04-27T10:58:27.977 に答える