Ich bin derzeit ein einfaches expect
Skript zu schreiben, das Astraleum geth console
und die folgenden Befehle zu öffnen:Skript erwarten: zusätzliche Zeichen nach close-Stütze, während trotz einfachen Anführungszeichen Ausführung
#!/usr/bin/expect
spawn /usr/bin/geth --testnet console
expect ">"
send "personal.unlockAccount('0xdc85a8429998bd4eef79307e556f70bb70d8caf1','X');\r"
expect "true"
expect ">"
send "var mortalContract=web3.eth.contract([{constant:!1,inputs:[],name:'kill',outputs:[],type:'function'},{constant:!1,inputs:[],name:'cashOut',outputs:[],type:'function'},{inputs:[],type:'constructor'}]),mortal=mortalContract['new']({from:'0xdc85a8429998bd4eef79307e556f70bb70d8caf1',data:'60606040525b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055505b61016e8061003f6000396000f360606040526000357c01000000000000000000000000000000000000000000000000000000009004806341c0e1b514610044578063793cd71e1461005357610042565b005b6100516004805050610062565b005b61006060048050506100f6565b005b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156100f357600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b60003073ffffffffffffffffffffffffffffffffffffffff16319050600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600060028304604051809050600060405180830381858888f19350505050505b5056',gas:47e5},function(f,t){console.log(f,t),'undefined'!=typeof t.address&&console.log('Contract mined! address: '+t.address+' transactionHash: '+t.transactionHash)});\r"
expect "undefined"
expect ">"
send "exit\r"
expect eof
Der Compiler ein Problem aufgetreten ist mit Linie 7 (die mit var mortalContract
beginnt). Ich suchte um und stellte fest, dass doppelte Anführungszeichen in doppelte Anführungszeichen stört erwarten, so änderte ich die doppelten inneren Anführungszeichen einzelne diejenigen aber es funktioniert immer noch nicht und gibt den folgenden Fehler:
extra characters after close-brace
while executing
"send "var mortalContract=web3.eth.contract([{constant:!1,inputs:[],name:'kill',outputs:[],type:'function'},"
(file "expectScript.js" line 7)
Beachten Sie, dass einfache Anführungszeichen haben absolut keine besondere Bedeutung in Tcl (und daher erwarten) - sie sind einfach nur Zeichen. –