gambas2: 外部コマンドの出力を利用する [Gambas]
引数で渡されたファイルのうちインストールできないものを除外
するために、インストール先の Arch (i386 や ppc、x86_64 とか)
を判別する必要がある。
いくつか候補を考えた結果、今回は rpm --eval %{_arch} の出力
を利用することにした。
で、gambas2 でコマンドの出力を変数に格納するには
次のようにする。
こうするとコマンドの終了を待って、標準出力が文字列の
sRes1 & sRes2 に格納される。
ただしこのまま使おうとすると改行コードが含まれてしまうので、
今回は Split を使って切り出すことにした。
ちなみに EXEC と SHELL の違いはコマンドの実行にシェルを
利用するかどうかなので、例えばコマンドの実行時に環境変数
を指定したいような場合は SHELL を使う必要がある。
するために、インストール先の Arch (i386 や ppc、x86_64 とか)
を判別する必要がある。
いくつか候補を考えた結果、今回は rpm --eval %{_arch} の出力
を利用することにした。
で、gambas2 でコマンドの出力を変数に格納するには
次のようにする。
PUBLIC SUB _new() DIM sRes1, sRes2 AS String EXEC ["rpm", "--eval", "%{_arch}"] TO sRes1 SHELL "rpm --eval %{_arch}" TO sRes2 END
こうするとコマンドの終了を待って、標準出力が文字列の
sRes1 & sRes2 に格納される。
ただしこのまま使おうとすると改行コードが含まれてしまうので、
今回は Split を使って切り出すことにした。
sRes1 = Split(sRes1, "\n")[0]
ちなみに EXEC と SHELL の違いはコマンドの実行にシェルを
利用するかどうかなので、例えばコマンドの実行時に環境変数
を指定したいような場合は SHELL を使う必要がある。
コメント 0