4.4 KiB
4.4 KiB
title | author | date | wordtwit_post_info | categories | |||
---|---|---|---|---|---|---|---|
Gaucheで外部コマンドを実行する | kazu634 | 2011-09-19 |
|
|
Gaucheで外部コマンドを実行しようとしたのですが、うまく行かなかったのでとりあえずダンプしておきます。
やりたいこと
外部コマンドをGaucheから実行したい!
ここまではわかった
Gaucheで外部コマンドを実行する場合は、どうやら run-process というものがあるらしいので、このコマンドを使えばよさそう
うまく行かなかったこと
次のようなコマンドを実行したかったけれど、実行に失敗した:
% virt-install --name dev1 --ram 512 --disk path=dev1.img,size=10 --vcpus 1 --network bridge=br0,model=virtio --graphic vnc,listen=... --pxe
とりあえず REPL から実行してみます:
gosh> (use gauche.process) #<undef> gosh> (run-process '(virt-install --name dev1 --ram 512 --disk path=dev1.img,size=10 --vcpus 1 --network bridge=br0,model=virtio --graphic vnc,listen=0.0.0.0 --pxe)) #<process 1148 "virt-install" active> gosh> ERROR Unknown argument ',size=10'
なんか上手くいかない。マニュアルにはこんな記述が。。。:
cmd/argsの各要素は、x->stringで文字列に変換されます。
というわけで実験:
gosh> (x->string '(virt-install --name dev1 --ram 512 --disk path=dev1.img,size=10 --vcpus 1 --network bridge=br0,model=virtio --graphic vnc,listen=0.0.0.0 --pxe)) "(virt-install --name dev1 --ram 512 --disk path=dev1.img ,size=10 --vcpus 1 --network bridge=br0 ,model=virtio --graphic vnc ,listen=0.0.0.0 --pxe)"
あっ、なんか「,」のところにスペースが入っている。。。原因はこれか。
さてさて
解決策はどうすればいいのだろうか。。。